2009-08-07 38 views
0

我正在使用.htaccess文件來允許我的頁面調用gzipped JavaScript文件。如何讓我的.htaccess文件允許Safari和其他瀏覽器打開GZIP?

它在ie8 & ff3中正常工作,但該腳本未在Safari(或Chrome)中加載。

這裏是我使用的.htaccess文件:

<files *.js.gz> 
ForceType text/javascript 
Header set Content-Encoding: gzip 
</files> 

然後,例如,我可以從我的HTML頁面調用JS文件:

<script src="foo.js.gz"></script> 

如何修改上述.htaccess代碼讓它在Safari上工作(並且仍然適用於其他瀏覽器)?

回答

4

我假設您正在嘗試使用Gzip壓縮來加快資源和文本內容的下載速度。這對於加速您網站的速度非常棒。

Safari,Chrome和IE6都有Gzipped下載問題。另外,Apache會爲你做gzip壓縮,不需要手動gzip文件。試試這個片斷:

# This uses mod_deflate, which is pretty standard on Apache 2. Loading 
# mod_deflate looks like this: 
# 
# LoadModule deflate_module modules/mod_deflate.so 
# 
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch \\bMSIE !no-gzip !gzip-only-text/html 

它是從Apache的發送之前進行,並且僅適用於支持它的瀏覽器應該安全gzip壓縮所有文本。您可以正常鏈接到JavaScript和其他資源,只需myscript.js,磁盤上無gz擴展或壓縮。

+0

Thaks的信息。但是...我沒有訪問apache。這就是我使用htaccess文件的原因。你知道如何改變htaccess文件讓Safari瀏覽我的gzip文件嗎? – edt 2009-08-07 17:38:36

+0

htaccess是一個Apache配置文件。正如我上面所說的,Safari不會讀取gzip文件。解決方案是爲Safari,Chrome和IE6提供純文件,但爲其他瀏覽器提供gzip內容。您仍然可以使用我在上面放置的語法,這取決於Apache服務器的配置方式。在沿着這條路走得太遠之前,使用螢火蟲或YSlow來確保服務器尚未爲您提供內容。 – mixonic 2009-08-07 18:59:14

+0

感謝您的教訓。但是...我只有一個gzip文件添加到網站。我想避免修改/破壞Apache配置文件...所以,我騙了。我使用PPK的瀏覽器檢測腳本。如果瀏覽器是Safari,我會動態加載未經gzip壓縮的js文件。否則,我動態加載gzip版本使用document.createElement(「script」)來動態加載腳本。 – edt 2009-08-07 21:34:28

相關問題