node.js - Node Express 未提供 Gzip 文件

标签 node.js reactjs express heroku gzip

我正在尝试使用 node/express 为 React 应用程序提供 gzip 压缩文件,但我不断收到 1.2MB 的大文件,而不是 gzip 压缩的 300kb 文件。这是我正在使用的快速路线处理程序

router.get('/javascripts/bundle.js', function (req, res, next) {
  console.log('ENVIRONMENT')
  console.log(process.env.NODE_ENV);
  if (process.env.NODE_ENV === 'production') {
    req.url = req.url + '.gz';
    res.set('Content-Encoding', 'gzip');
    res.set('Content-Type', 'text/javascript');
    console.log('request URL: ' + req.url);
  }
  next();
});

我正在检查以确保环境处于生产状态,但这些日志都没有显示在我的服务器日志(heroku 日志)中。查看 Chrome 中的网络选项卡,它显示 1.2MB

我缺少什么吗?

最佳答案

也许在另一个模块(如 app.js)中,您正在使用快速静态中间件,该中间件在请求到达您的自定义中间件之前捕获请求。 检查并注释掉(如果可以的话)

app.use(express.static(path.join(__dirname, 'public')));

关于node.js - Node Express 未提供 Gzip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46719410/

相关文章:

node.js - NodeJS 中用于 API 的 stub DynamoDB

node.js - Nodejs将字符串转换为UTF-8

支持 update_with_media 的 Node.js Twitter 库

node.js - 如何从 express 、参数和查询中的 url 获取 id 似乎不起作用

javascript - 使用 Node js 和 electron 上传图片。 (从 C# 代码转换)

reactjs - 将 create React 应用程序升级到版本 4 给出 : ReferenceError: Cannot access 'middleware' before initialization

javascript - 自定义分页 slider 缺少 react.js 的配置文件

javascript - React-Router 疑问/问题

node.js express.js 对象不是函数 call_non_function

node.js - Express js 不提供静态文件