2012-03-18 8 views
1

gzip圧縮cssとjsファイルをサーバーに頼るのではなく、ファイルをgzipしてサーバーに保存し、html内のファイルにリンクすることをお勧めします。gzipファイルをhtmlソースとして使用する

<script src="../Scripts/compiled.js.gzip"></script> 

とCSSと同じ:

代わりの

<script src="../Scripts/compiled.js"></script> 

は、このをお持ちですか?

私は試しましたが、動作しません。ファイルは圧縮解除されていないようです。私はResource interpreted as Stylesheet but transferred with MIME type application/x-gzip:もこれは可能ですか?

答えて

3

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です。

+0

いいえ、私はasp.netを使っています – frenchie

+0

Marat:キャッシュコントロールを持っているのはなぜですか? –

+0

Fenchie:IISが圧縮されたファイルをディスクに保存するので、IIS上のプリ圧縮によって多くの利益が得られるとは思わない。 –

関連する問題