你的Gzip文件應該有響應標題Content-Encoding: gzip
而Content-Type
應該是text/javascript
的JavaScript文件或text/css
的CSS文件。
對於我來說,以下.htaccess
規則不工作:
AddEncoding x-gzip .gz
RewriteEngine On
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]
<FilesMatch \.js\.gz$>
ForceType "text/javascript; charset=utf-8"
Header set Cache-control: private
</FilesMatch>
Header set Vary: Accept-Encoding
可以用來代替Header set Cache-control: private
,以防止返回Gzip壓縮的版本不支持Gzip壓縮,用戶代理。
.htaccess
文件應放置在包含js的目錄中。
Gzipped和非壓縮版本應該並排放置(gzip版本的文件名包含.gz
後綴)。 Gzip編碼版本在其URL請求明確提到的沒有Gzip的通常文件時透明地返回(如果.gz
版本存在,並且瀏覽器支持請求頭負責的Gzip)。
P.S.啊,你使用的是ASP.net,因此它顯然是在IIS下運行的。那麼,最近版本的IIS有類似.htaccess
的功能,AFAIK。
是的,我正在使用asp.net – frenchie 2012-03-19 12:09:42
Marat:爲什麼你有緩存控制:私人? – 2012-03-23 09:47:51
Fenchie:我不認爲通過IIS上的預壓縮可以獲得太多的收益,因爲IIS在磁盤上存儲壓縮版本的文件 – 2012-03-23 09:49:40