NGINX gzip没有压缩JavaScript文件

use*_*186 69 nginx

所有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;
Run Code Online (Sandbox Code Playgroud)

Jak*_*uld 144

改变这一行:

gzip_types    text/plain application/x-javascript text/xml text/css;
Run Code Online (Sandbox Code Playgroud)

为此:

gzip_types    text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
Run Code Online (Sandbox Code Playgroud)

请注意添加application/javascripttext/javascript删除gzip类型列表.

这里发布的答案中还有更多细节和更广泛的gzip类型列表.


Mau*_*lla 6

这很有趣,因为浏览器中javascript的最佳支持,旧标准mime类型实际上是text/javascript.如果你配置它/etc/nginx/mime.types,它可以工作.

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

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

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