NGINX gzip не стискає файли JavaScript


79

Всі файли JavaScript не стискаються nginx gzip.

Файли CSS працюють.

У моєму nginx.confя маю такі рядки:

gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_proxied any;
gzip_buffers 16 8k;
gzip_types    text/plain application/x-javascript text/xml text/css;
gzip_vary on;

Відповіді:


161

Змінити цей рядок:

gzip_types    text/plain application/x-javascript text/xml text/css;

Щоб бути таким:

gzip_types    text/plain application/javascript application/x-javascript text/javascript text/xml text/css;

Зверніть увагу на додавання application/javascriptі text/javascriptдо вашого списку типів gzip.

Також тут є більше деталей - і більш обширний перелік типів gzip - у відповіді, опублікованій тут .


8

Це цікаво, оскільки найкращим підтримуваним старим стандартним типом mime для javascript у браузері є насправді text / javascript. І якщо ви це налаштуєте /etc/nginx/mime.types, це працює.

текст / javascript (застарілий): JavaScript; Визначено та застаріло в RFC 4329, щоб перешкоджати його використанню на користь програми / javascript. Однак текст / javascript дозволено в HTML 4 і 5 і, на відміну від application / javascript, має підтримку між браузерами. Атрибут "type" тегу в HTML5 є необов'язковим, і його взагалі не потрібно використовувати, оскільки всі браузери завжди вважали правильним значення за замовчуванням (навіть у HTML 4, де це вимагається специфікацією).

З цієї теми: text / javascript vs application / javascript

Отже, модуль gzip nginx просто побудований за попередніми стандартами, і, мабуть, неправильно обробляє тип mime програми / javascript.


1
це було єдине діюче рішенняtext/javascript js;
Салем

Я знову стикаюся з тим же питанням , і я просто додати application/javascriptдоgzip_types
Салем
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.