2013-09-21 3 views
0

Я использую промежуточное ПО compress(), поставьте его первым в configure().Express.js: как получить активы gzipped

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

Как проверить, что мой контент gzipped? У меня странная ситуация: 1) На моей машине dev: localhost: 4000/mystyle.css - НЕ см. Content-encoding: gzip

2) Когда я развожу его на производство, если я запросите файл it self mydomain.com/mystyle.css - Я вижу, что есть Content-encoding: gzip

3) Я прошу mydomain.com и вижу в Network в chrome dev tools, найдите там mystyle.css и там я НЕ см. Content-encoding: gzip

4) Я использую разные службы, чтобы проверить, не является ли мой контент gzipped, некоторые говорят, что он есть, некоторые из них НЕ.

WTF? Может кто-нибудь объяснить?

ответ

2

Ваша проблема заключается в использовании app.configure. Это в значительной степени устарело, но вы специально используете его таким образом, чтобы искать среду all.

documentation объясняет: «Этот метод остается по старой причине и является фактически оператором if, как показано в следующих фрагментах».

Вместо этого просто используйте app.use, не обернув их в инструкцию configure.

+0

Если вам нужно, вы можете использовать 'app.configure (function() {app.use() ...})' – deitch

+0

На самом деле да, теперь присутствует кодировка, спасибо. Почему это было проблемой? – WHITECOLOR

+0

Это была проблема, потому что вы не установили process.env.NODE_ENV на «все». – dankohn

Смежные вопросы