Подтвердить что ты не робот

NGINX gzip не сжимает файлы JavaScript

Все файлы 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;
4b9b3361

Ответ 1

Измените эту строку:

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 - в ответе здесь.

Ответ 2

Это интересно, потому что самый лучший, старый стандартный тип mime для javascript в браузере - это на самом деле text/javascript. И если вы настроите это, в /etc/nginx/mime.types он работает.

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

Из этой темы: text/javascript vs application/javascript

Таким образом, gzip-модуль nginx просто построен против предыдущих стандартов и, по-видимому, неправильно обрабатывает тип mime приложения/javascript.