NGINX gzip不压缩JavaScript文件

NGINX gzip不压缩JavaScript文件,nginx,Nginx,并非所有JavaScript文件都由nginx gzip压缩 CSS文件正在工作 在mynginx.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; 更改此行: gzip_types

并非所有JavaScript文件都由nginx gzip压缩

CSS文件正在工作

在my
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;
更改此行:

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;
注意在gzip类型列表中添加了
application/javascript
text/javascript


答案中还有更多的细节和更广泛的gzip类型列表。

这很有趣,因为浏览器中最受支持的、旧的javascript标准mime类型实际上是text/javascript。如果您在
/etc/nginx/mime.types
中配置了它,它就会工作

text/javascript(过时):javascript;在RFC 4329中定义,并在RFC 4329中被废弃,以阻止其使用而支持应用程序/javascript。但是,HTML4和HTML5中允许使用text/javascript,并且与application/javascript不同,它具有跨浏览器支持。HTML5中标记的“type”属性是可选的,根本不需要使用它,因为所有浏览器都始终采用正确的默认值(即使在规范要求的HTML4中也是如此)

从该线程:


因此,nginx的gzip模块只是根据以前的标准构建的,显然没有正确处理application/javascript mime类型。

这是唯一有效的解决方案
text/javascript js
我再次面临同样的问题,我只是将
应用程序/javascript
添加到
gzip\u类型中