NGINX gzip不压缩JavaScript文件


78

nginx gzip并未压缩所有JavaScript文件。

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;

Answers:


160

更改此行:

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/javascripttext/javascript

此处发布的答案中,还有更多详细信息和gzip类型更广泛的列表。


8

这很有趣,因为浏览器中javascript所支持的最老的标准mime类型实际上是text / javascript。而且,如果您在中配置它/etc/nginx/mime.types,它就可以工作。

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

从这个线程:text / javascript vs application / javascript

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


1
这是唯一可行的解​​决方案text/javascript js;
Salem

我再次面对同样的问题,我只想补充application/javascript一下gzip_types
萨利姆
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.