2013-09-21 37 views
0

我使用compress()中间件,把它放在configure()中的第一个。Express.js:如何获取资产gzipped

app.configure('all', function(){ 
    app.use(express.compress()); 
    ... 
    app.use(express.static('public'), { maxAge: oneMonth }); 
}) 

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

2)当我部署它在生产,如果我请求自己的文件mydomain.com/mystyle.css - 我看到在那里看到内容编码:gzip

3)我请求mydomain.com并在网络中看到铬开发工具,找到那里mystyle.css和那里我不要看内容编码:gzip

4)我使用不同的服务来检查我的内容是否被gzipped有人说它是,有些不是。

WTF?有人可以解释一下吗?

回答

2

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

documentation解释说:“此方法仍然是遗留的原因,并且实际上是if语句,如以下片段中所示。”

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

+0

如果你必须,你可以使用'app.configure(function(){app.use()...})' – deitch

+0

其实是的,编码现在存在,谢谢。为什么这是一个问题? – WHITECOLOR

+0

这是一个问题,因为您没有将process.env.NODE_ENV设置为'all'。 – dankohn