2011-12-16 39 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; 
    } 
}