Express.js:如何获取gzip资产

Express.js:如何获取gzip资产,express,gzip,Express,Gzip,我使用compress()中间件,将其放在configure()中的第一位 如何检查我的内容是否已gzip?我有一个非常奇怪的情况: 1) 在我的开发机器上:我需要localhost:4000/mystyle.css-看不到内容编码:gzip 2) 当我在生产环境中部署它时,如果我请求文件self-mydomain.com/mystyle.css,我会看到内容编码:gzip 3) 我请求mydomain.com并在chrome开发工具的网络中查看,在那里找到mystyle.css,在那里我没有看

我使用compress()中间件,将其放在configure()中的第一位

如何检查我的内容是否已gzip?我有一个非常奇怪的情况: 1) 在我的开发机器上:我需要localhost:4000/mystyle.css-看不到内容编码:gzip

2) 当我在生产环境中部署它时,如果我请求文件self-mydomain.com/mystyle.css,我会看到内容编码:gzip

3) 我请求mydomain.com并在chrome开发工具的网络中查看,在那里找到mystyle.css,在那里我没有看到内容编码:gzip

4) 我使用不同的服务来检查我的内容是否被gzip压缩——有些说是,有些说不是


WTF?有人能解释一下吗?

你的问题是你对app.configure的使用。这在很大程度上已被弃用,但您正在专门使用它,以便寻找一个
all
环境

解释:“这个方法保留下来是因为遗留的原因,实际上是一个if语句,如下面的代码片段所示。”


相反,只需使用app.use而不必将它们包装在configure语句中。

如果必须,可以使用
app.configure(function(){app.use()…})
实际上是的,现在就可以进行编码了,谢谢。为什么这是一个问题?这是一个问题,因为您没有将process.env.NODE_env设置为“all”。@dankohn但应用了其他配置设置(如bodyParser、sessions)。这很奇怪。您可以使用一堆console.log语句来准确地了解发生了什么,但我不想麻烦。
app.configure('all', function(){
  app.use(express.compress());
  ...
  app.use(express.static('public'), { maxAge: oneMonth });
})