Nginx gzip对javascript文件压缩无效

时间:2022-03-18 16:06:19

问题

Nginx从1.0.15升级到1.12.1后,原来开启的gzip对javascript文件压缩失效了。

原来nginx的gzip相关配置如下

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";

解决方法

这里需要先了解下javascript的mime type:

  • text/javascript:这是已被废弃的用法。
  • application/x-javascript:x表示试验中,由text/javascript迁移到application/x-javascript时用于实验的
  • application/javascript:RFC现在官方推荐使用的MIME type。

如果是html5,建议不要再script声明mime type。

从上面的配置可以看出,gzip_types是缺少application/javascript,添加上即可:

gzip_types text/plain text/css text/javascript application/javascript application/x-javascript application/xml  image/jpeg image/gif image/png;

参考:application/javascript or application/x-javascript