浏览代码

Load hash based styles in error.html, too

Tarek Becker 7 年之前
父节点
当前提交
70bb81c6eb

+ 1 - 0
.gitignore

@@ -8,6 +8,7 @@ awsconfig
 /dist
 /public/build
 /public/views/index.html
+/public/views/error.html
 /emails/dist
 /public_gen
 /public/vendor/npm

+ 1 - 1
public/views/error.html → public/views/error.template.html

@@ -10,7 +10,7 @@
 
     <base href="[[.AppSubUrl]]/" />
 
-    <link rel="stylesheet" href="public/build/grafana.[[ .Theme ]].css?v[[ .BuildVersion ]]">
+    <link rel="stylesheet" href="public/build/grafana.[[ .Theme ]].<%= webpack.hash %>.css">
 
     <link rel="icon" type="image/png" href="public/img/fav32.png">
     <link rel="mask-icon" href="public/img/grafana_mask_icon.svg" color="#F05A28">

+ 1 - 1
scripts/webpack/webpack.common.js

@@ -47,7 +47,7 @@ module.exports = {
       },
       {
         test: /\.html$/,
-        exclude: /index\.template.html/,
+        exclude: /(index|error)\.template\.html/,
         use: [
           { loader: 'ngtemplate-loader?relativeTo=' + (path.resolve(__dirname, '../../public')) + '&prefix=public' },
           {

+ 5 - 0
scripts/webpack/webpack.dev.js

@@ -82,6 +82,11 @@ module.exports = merge(common, {
     new MiniCssExtractPlugin({
       filename: "grafana.[name].[hash].css"
     }),
+    new HtmlWebpackPlugin({
+      filename: path.resolve(__dirname, '../../public/views/error.html'),
+      template: path.resolve(__dirname, '../../public/views/error.template.html'),
+      inject: 'false',
+    }),
     new HtmlWebpackPlugin({
       filename: path.resolve(__dirname, '../../public/views/index.html'),
       template: path.resolve(__dirname, '../../public/views/index.template.html'),

+ 5 - 0
scripts/webpack/webpack.prod.js

@@ -80,6 +80,11 @@ module.exports = merge(common, {
       inject: 'body',
       chunks: ['vendor', 'app'],
     }),
+    new HtmlWebpackPlugin({
+      filename: path.resolve(__dirname, '../../public/views/error.html'),
+      template: path.resolve(__dirname, '../../public/views/error.template.html'),
+      inject: false,
+    }),
     function () {
       this.hooks.done.tap('Done', function (stats) {
         if (stats.compilation.errors && stats.compilation.errors.length) {