diff options
Diffstat (limited to 'server/lib/client-html.ts')
-rw-r--r-- | server/lib/client-html.ts | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/server/lib/client-html.ts b/server/lib/client-html.ts index ccc963514..1e7897220 100644 --- a/server/lib/client-html.ts +++ b/server/lib/client-html.ts | |||
@@ -1,8 +1,8 @@ | |||
1 | import * as express from 'express' | 1 | import * as express from 'express' |
2 | import { buildFileLocale, getDefaultLocale, is18nLocale, POSSIBLE_LOCALES } from '../../shared/models/i18n/i18n' | 2 | import { buildFileLocale, getDefaultLocale, is18nLocale, POSSIBLE_LOCALES } from '../../shared/models/i18n/i18n' |
3 | import { CUSTOM_HTML_TAG_COMMENTS, EMBED_SIZE, WEBSERVER } from '../initializers/constants' | 3 | import { CUSTOM_HTML_TAG_COMMENTS, EMBED_SIZE, PLUGIN_GLOBAL_CSS_PATH, WEBSERVER } from '../initializers/constants' |
4 | import { join } from 'path' | 4 | import { join } from 'path' |
5 | import { escapeHTML } from '../helpers/core-utils' | 5 | import { escapeHTML, sha256 } from '../helpers/core-utils' |
6 | import { VideoModel } from '../models/video/video' | 6 | import { VideoModel } from '../models/video/video' |
7 | import * as validator from 'validator' | 7 | import * as validator from 'validator' |
8 | import { VideoPrivacy } from '../../shared/models/videos' | 8 | import { VideoPrivacy } from '../../shared/models/videos' |
@@ -92,7 +92,7 @@ export class ClientHtml { | |||
92 | let html = buffer.toString() | 92 | let html = buffer.toString() |
93 | 93 | ||
94 | html = ClientHtml.addCustomCSS(html) | 94 | html = ClientHtml.addCustomCSS(html) |
95 | html = ClientHtml.addPluginCSS(html) | 95 | html = await ClientHtml.addAsyncPluginCSS(html) |
96 | 96 | ||
97 | ClientHtml.htmlCache[ path ] = html | 97 | ClientHtml.htmlCache[ path ] = html |
98 | 98 | ||
@@ -144,8 +144,12 @@ export class ClientHtml { | |||
144 | return htmlStringPage.replace(CUSTOM_HTML_TAG_COMMENTS.CUSTOM_CSS, styleTag) | 144 | return htmlStringPage.replace(CUSTOM_HTML_TAG_COMMENTS.CUSTOM_CSS, styleTag) |
145 | } | 145 | } |
146 | 146 | ||
147 | private static addPluginCSS (htmlStringPage: string) { | 147 | private static async addAsyncPluginCSS (htmlStringPage: string) { |
148 | const linkTag = `<link rel="stylesheet" href="/plugins/global.css" />` | 148 | const globalCSSContent = await readFile(PLUGIN_GLOBAL_CSS_PATH) |
149 | if (!globalCSSContent) return htmlStringPage | ||
150 | |||
151 | const fileHash = sha256(globalCSSContent) | ||
152 | const linkTag = `<link rel="stylesheet" href="/plugins/global.css?hash=${fileHash}" />` | ||
149 | 153 | ||
150 | return htmlStringPage.replace('</head>', linkTag + '</head>') | 154 | return htmlStringPage.replace('</head>', linkTag + '</head>') |
151 | } | 155 | } |