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

标签 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
    })

最佳答案

我只是通过放置这个中间件声明就解决了这个问题:

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'));。 (之前是相反的)

关于javascript - 无法使用 Express 正确提供 gzip 压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49911058/

相关文章:

JavaScript 按特定常量值对多个属性上的对象数组进行排序

javascript - 强制下载 .ics 文件

node.js - 利用浏览器缓存并在 Node.js 中指定缓存验证器

node.js - 将麦克风输入流式传输到 Google Speech API

javascript - 在 express 中处理 javascript 错误

javascript - Selenium / python : JavaScript href refuses to execute

javascript - Canvas 图像调整大小和裁剪噪点

javascript - 如何使用 Node 和 TypeScript 获取异步堆栈跟踪?

javascript - 尝试读取 MYSQL 查询结果时无法读取未定义的属性 'length'

node.js - 使用 Node/Express/Socket.IO 进行身份验证