无法使用Express正确提供gzip压缩文件

时间:2018-04-19 00:53:54

标签: javascript node.js express gzip middleware

我已经gzip压缩了webpack包,当我尝试提供它时,我在客户端遇到ERR_CONTENT_DECODING_FAILED错误。 这是我的中间件:

`app.get('*.js', function (req, res, next) {
  req.url = req.url + '.gz';
  res.set('Content-Encoding', 'gzip');
  res.set('Content-Type', 'text/javascript');
  next();
});`

有没有人知道发生了什么?我尝试使用.header().setHeader()方法,但也没有得到任何预期的结果。 提前谢谢。

这是压缩插件:

new CompressionPlugin({
      asset: "[path].gz[query]",
      algorithm: "gzip",
      test: /\.js$/,
      threshold: 10240,
      minRatio: 0.8
    })

1 个答案:

答案 0 :(得分:1)

我只是通过放置这个midleware声明解决了这个问题:

app.get('*.js', function (req, res, next) {
  req.url = req.url + '.gz';
  res.set('Content-Encoding', 'gzip');
  res.set('Content-Type', 'text/javascript');
  console.log('sent')
  next();
});
app.use('/static', Express.static('dist'));之前

。 (之前反之亦然)