2013-09-21 36 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