2011-12-16 38 views
2

我在文件gzip压缩的风格和脚本:Nginx的:正确设置MIME类型gzip压缩的款式/脚本

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

的问题是,它不会成为正确的MIME类型和浏览器不承认,文件是压缩的CSS或JS(浏览器认为类型为应用程序/八位字节流,它应该是文本/ CSS等)。

我尝试添加以下内容到mime.type的nginx,但没有任何效果。我想,它不承认文件是压缩的。

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

当试图访问这些文件时,浏览器将这些文件作为文件处理,以便下载而不存在。

回答

1

请勿更改MIME类型,并使用Gzip Static Module来解决此问题。

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

+0

这不是我所期待的,我不希望总是生成两个文件(未压缩和压缩),我有一些情况下,我不提供JavaScript,也没有样式,但我希望mime类型正确发送与文件被压缩的信息。 – 2011-12-16 11:42:19

3

我有同样的问题,来自Apache。 我发现的问题是,types块不允许你指定.css.gz作为文件扩展名。但是,location块呢!我的解决办法是让一个位置.css.gz然后修改内容类型.gz该位置内,就像这样:

location ~ \.css\.gz$ { 

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