Javascript 未提供Webpack gzip压缩包,未压缩包为

Javascript 未提供Webpack gzip压缩包,未压缩包为,javascript,html,compression,gzip,webpack,Javascript,Html,Compression,Gzip,Webpack,我第一次试用这个网页包。我已经在Browserify中使用Gulp一段时间了,我对它非常满意。在这一点上,我只是测试了几个网页包插件。即压缩网页包插件。我以前从未使用过压缩,所以如果我犯了任何错误,请容忍我 下面是我的webpack.config.js。结果是我得到了main.js、main.js.gz、main.css和index.html。main.js被注入index.html,但如果我在浏览器中打开index.html,它将为未压缩的main.js服务,而不是为压缩的main.js.gz

我第一次试用这个网页包。我已经在Browserify中使用Gulp一段时间了,我对它非常满意。在这一点上,我只是测试了几个网页包插件。即压缩网页包插件。我以前从未使用过压缩,所以如果我犯了任何错误,请容忍我

下面是我的webpack.config.js。结果是我得到了main.js、main.js.gz、main.css和index.html。main.js被注入index.html,但如果我在浏览器中打开index.html,它将为未压缩的main.js服务,而不是为压缩的main.js.gz服务。我曾读到,我不需要在脚本标记中包含.gz扩展名,html网页包插件也不包含它,因此我认为一切正常,但提供的是未压缩的main.js,而不是压缩的main.js

var path = require('path');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var CompressionPlugin = require('compression-webpack-plugin');

module.exports = {
  entry: './app/scripts/main.js',
  output: {
    path: path.join(__dirname, 'public'),
    filename: '[name].js',
    chunkFilename: '[id].js'
  },
  module: {
    loaders: [
      {test: /\.scss$/, exclude: /node_modules/, loader: ExtractTextPlugin.extract('style-loader', 'css-loader!sass-loader')},
      {test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'}
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      hash: true,
      template: 'app/index.html',
      inject: 'body'
    }),
    new ExtractTextPlugin('[name].css'),
    new CompressionPlugin()
  ]
};

要加载
main.js.gz
而不是
main.js
script
-标记中包含
main.js
,您需要配置web服务器(apache、nginx等)

请记住,配置应该加载
.js.gz
.js
,这取决于浏览器是否接受gzip。Web服务器可以在HTTP请求头中检查它
接受编码:gzip,deflate


在浏览器devtools中,您将在任何情况下看到main.js

您可以有条件地使用。服务器检查请求的
/statics/app.js
文件是否存在,并透明地提供该文件。无需更改应用程序或检测
接受编码
——所有这些都由nginx模块处理。以下是配置代码段:

location /statics/ {
  gzip_static on;
}

我写这篇文章有点晚了,但我想我应该加上我的2c。我使用webpack生成了一个gz文件,但是Apache继续提供未压缩的文件(如果不存在,则会出错),尽管
Accept Encoding
设置正确。结果我不得不取消注释
添加编码x-gzip.gz.tgz
并重新加载httpd。作为记录,
AddType应用程序/x-gzip.gz.tgz
已经设置好了,我正在使用带有Chrome62的Apache2.4.6。感谢上面的Dmitry轻推我查看conf/httpd.conf文件。

我应该在IIs中做什么才能加载预压缩(未生成)文件files?@RoyiNamir您需要编写重写规则我没有找到为js文件提供gz文件的合适规则感谢您指定devtools即使接收到gzip文件也显示正常扩展名。我已经检查过了,我在响应标题中找到了:内容编码:gzip我认为一切都在正常工作,没有任何更改,谢谢webpack!:-)