Nginx:正确设置gzip样式/脚本的mime类型

时间:2011-12-16 09:37:41

标签: nginx

我在文件中有一个gzip压缩的样式和脚本:

/scripts.js.gz
/styles.css.gz

问题是它没有提供正确的mime类型,浏览器无法识别,文件是压缩的css或js(浏览器将类型识别为application / octet-stream,它应该是text / css或者左右)。

我尝试将以下内容添加到nginx的mime.type中,但没有效果。我想,它无法识别文件是否被压缩。

types {
    text/css                                css.gz;
    application/x-javascript                js.gz;
}

当尝试访问文件时,浏览器会将文件作为要下载的文件处理,而不是存在。

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,来自Apache。 我发现的问题是,types块不允许您将.css.gz指定为文件扩展名。但是,location块确实存在!我的解决方案是为.css.gz创建一个位置,然后在该位置修改.gz的内容类型,如下所示:

location ~ \.css\.gz$ {

   add_header  Content-Encoding  gzip;
   gzip off;
   types {
     text/css gz;
   }
}

答案 1 :(得分:1)

请勿更改mime类型并使用Gzip Static Module来处理此问题。

当它处于活动状态时,Nginx将首先尝试提供“file.ext.gz”,然后尝试“file.ext”(如果没有找到),用于处于活动状态的上下文(位置等)内的所有请求。 / p>