2014-05-12 15 views
38

我正在提供我的css/javascript文件的gzipped副本。根據教程,我在提供這些文件時將內容類型設置爲application/gzip。然而,鉻似乎並沒有解壓這些文件,並且對於JavaScript文件,我收到了很多「非法字符」錯誤。如果我查看源代碼,我仍然可以看到這些文件是壓縮的,而不是未壓縮的。服務gzip文件時使用什麼'Content-Type'標題?

我的問題是,我應該怎麼設置爲內容類型這些文件,以使瀏覽器能正確地解釋他們作爲gzip壓縮的CSS/JS文件,並取消他們gzip壓縮?如果我只設置了text/javascripttext/css,瀏覽器是否仍能正確解釋它們?

編輯:全響應頭:在響應

HTTP/1.1 200 OK 
x-amz-id-2: UIBkZT/MuFxsmn+3nVOzEO63rRY99l3traCbMExUgSdGHUrOIPtNp34h1+ujYKmt 
x-amz-request-id: 19346C9B01D8FC62 
Date: Mon, 12 May 2014 03:59:51 GMT 
Content-Encoding: gzip 
Last-Modified: Mon, 12 May 2014 02:24:54 GMT 
ETag: "561080b5e19f6daea2e74fd5a0623c79" 
Accept-Ranges: bytes 
Content-Type: application/x-gzip 
Content-Length: 5153 
Server: AmazonS3 

回答

62

壓縮內容在Content-Encoding表示。 Content-Type應該保持不變,即它應該反映被壓縮的基礎媒體類型。

Content-Type: application/javascript 
Content-Encoding: gzip 

見第14.11 Content-Encoding和RFC 2616的更多信息3.5 Content Codings

+1

我已經這樣做,但它似乎仍然不能正確解釋腳本。我已經編輯過在問題 –

+0

中提供了完整的頭文件它在第1行給出錯誤'未捕獲的SyntaxError:意外的令牌ILLEGAL',當我檢查它時,我發現它在該行有文件名,例如' aRjquery-1.7.1.min.js }'。我使用'gzip -9'壓縮文件,我需要使用較低的設置來壓縮文件嗎?或者我需要從文件開頭刪除文件名? –

+2

好吧,我看到了預期的Content-Encoding,但Content-Type應該反映出壓縮的底層媒體類型。嘗試將'application/x-gzip'改回'application/javascript'。 –

相關問題