Gzipファイルの応答ヘッダーはContent-Encoding: gzip
ですが、Content-Type
は、JavaScriptファイルの場合はtext/javascript
、CSSファイルの場合はtext/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
は、Gzip圧縮をサポートしていないユーザーエージェントにgzip形式のバージョンを返す防ぐために、代わりにHeader set Cache-control: private
を使用することができます。
.htaccess
ファイルは、jsを含むディレクトリに配置する必要があります。
gzippedバージョンとnongzippedバージョンを並べて配置する必要があります(gzippedバージョンのファイル名には.gz
postfixが含まれています)。 URLに明示的に記述されているGzipなしの通常のファイルを要求する場合、Gzipエンコードされたバージョンは透過的に返されます(.gz
バージョンが存在し、ブラウザはAccept-encoding
リクエストヘッダーの責任を負うGzipをサポートします)。
P.S.ああ、ASP.netを使用しているため、IIS上で動作しているようです。さて、最近のIISのバージョンは.htaccess
のようなAFAIKです。
いいえ、私はasp.netを使っています – frenchie
Marat:キャッシュコントロールを持っているのはなぜですか? –
Fenchie:IISが圧縮されたファイルをディスクに保存するので、IIS上のプリ圧縮によって多くの利益が得られるとは思わない。 –