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; 

改变这一行:

 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/javascripttext/javascript到你的gziptypes列表。

在这里发布的答案中还有更多的细节和更广泛的gziptypes列表。

这很有趣,因为浏览器中支持JavaScript的最好的,标准的MIMEtypes实际上是text / javascript。 如果你在/etc/nginx/mime.typesconfiguration它, /etc/nginx/mime.types可以工作。

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

从这个线程: 文本/ JavaScript与应用程序/ JavaScript

所以nginx的gzip模块是根据以前的标准构build的,显然没有正确处理application / javascript mimetypes。