2009-05-14 16 views
1

私はgzip形式で保存されたhtmlファイルを持っています。ブラウザはhtmlファイルを表示しますが、javascriptとCSSは表示されません。同じディレクトリに圧縮されていないhtmlファイルが正しく表示されます。さらに、圧縮されたhtmlファイルからソースを保存し、JSとCSSを適用して正しく再オープンしました。JSとCSSのないgzip形式のhtmlファイルが表示されるのはなぜですか?

JSとCSSを受け取ることができない圧縮されたhtmlの表示とは何ですか?

+2

ファイル転送用にgzippingしていますか?ローカルでgzipしておらず、そのファイルをサーバーに置いていましたか? – geowa4

+0

いいえ、私はしませんでした。私のcgiアプリケーションは、実行時にファイルを圧縮します。これらのファイルは、サーバー上に置かれ、zip形式で呼び出されます。私は組み込みWebサーバーを使用していますが、gzipまたはzipをオンザフライでサポートしていません。 –

+0

htmlが正しく表示される場合は、JSおよびCSSの参照またはURLに問題があるはずです。あなたがそれらのファイルを含む方法に奇妙な/何か違うことはありますか? (もちろん、誰かが問題を推測するまで待つのを待っている最中に、パブリックURLやコードを提供することが最も簡単なのは、最も遅い答えです) – brianpeiris

答えて

3

基本的な問題は、ブラウザがCSSを予期しているgzipファイルを提供できないことです。 JPEGまたはハムのサンドイッチを返すだけではそれだけでは機能しません。

コンテンツがオンザフライで圧縮されると、応答は多少異なります。レスポンスには「私はtext/cssですが、gzipで転送されることがあります」と表示されます。ブラウザはそれを理解することができます。

gzipファイルをローカルに提供すると、ApacheのようなWebサーバーによっては、このようなことがあります。しかし、あなたのサーバーはそうではないと思います。

なぜHTMLで動作するのですか?うーん、私は知らない、あなたのブラウザは実際にその特定のケースでそれを把握することができますか?

あなたが最終的にしたいことは、Content-Type:text/cssとContent-Encoding:gzipで応答を提供して正しく認識させることです。

2

それはあなたが
(XAMPPのような)独自のサーバー上のローカルホスト上で作業している、あなたは、ファイルがgzipedされるかもしれないことを言った右
ヘッダを送信するために.htaccessファイルを設定する必要があります。あなたのメインの.htaccessファイルにこれを追加すること

試してみてください。

AddEncoding x-gzip .gz 
AddType text/html .gz 

とあなたのgziped圧縮
ファイルが.gzという拡張子でendindされていることを確認してください。

また、これは常にサーバーで実行してください。:)

関連する問題