2012-07-14 13 views
6

私はYUI compressor pluginを使用して、JSとCSSファイルをJava EEアプリケーション内で圧縮してgzipします。HTML/JSPでgzip圧縮CSSとJSを参照

ただし、HTML/JSPファイル内でそれらを参照する方法については明確ではありません。

私は単に.gzipリファレンスを使用する場合は、ブラウザが明らかに言って不平を言う -

Resource interpreted as Script but transferred with MIME type application/x-gzip

現在の基準は、(上記のエラーをスローする)次のようになります。

<script type="text/javascript" src="/scripts/home.js.gz"></script> 
+0

圧縮はHTTP機能です。[あなたのサーバーはそれを行う必要があります](http://sourceforge.net/projects/mod-gzip/)、ファイルをあらかじめgzipする必要はありません。 – robertc

答えて

1

あなたはそれらを通常の.jsと.css拡張子で参照し、gzipが動作しているかどうかを確認するには、Firebugや開発者ツールを使ってCSSやJSファイルの応答ヘッダを調べます。

通常、GzippingはWebサーバーレベルで実行されます。

Tomcatを使用している場合は、Tomcatインストールのconf/server.xmlを開き、Connector定義に以下を追加できます。 Apacheがmod_gzipのを見てか、これはあなたのルートの.htaccessファイルではなく、あなたが優れているのhttpd.confへのアクセス権を持っている場合行く

をmod_deflateをするために

<Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" connectionTimeout="20000" 
      compressableMimeType="text/html,text/xml,text/css,text/javascript,text/plain,application/javascript,application/json" 
      compression="2048"/> 

<ifModule mod_deflate.c> 
<filesMatch "\.(js|css)$"> 
SetOutputFilter DEFLATE 
</filesMatch> 
</ifModule> 
+0

これを試して戻ってきます... – Saket

2

あなたのブラウザに警告が表示されますが、返されたコンテンツタイプとは異なるデータを解釈するたびに、これが表示されます。

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

これは、ブラウザのエラーを削除するだけでなく、ブラウザがこのファイルは、使用前に解凍しなければならないことを認識させます:あなたが本当にやろうとしている何

はこれです。

0

あなたはあなたのためのすべてのgzipを行うようにTomcatを設定することができますが、私は、あなたがこれらを送信するためにサーブレットを使用することができ、手動でjscssファイルのようなあなたの静的なリソースを圧縮しまたはjs.gzとしてサーバー上に保存することをお勧めします静的圧縮ファイルと事前圧縮ファイルをクライアントに送信します。

サーブレットの実装については、https://gist.github.com/suprememoocow/1570654を参照してください。

サーバにgzipファイルを保存するためのメカニズムが組み込まれている場合は、それを使用できます。私が見つけた限り、tomcat(7)はまだこの機能を持っていません。