cssファイルをgzipで圧縮するcssファイルを作成するためのパブリックphpファイルを作成する方法についてのチュートリアルがあります。問題は、自分のcssファイルをキャッシュすることができないということです。私は参照のためのファイヤーバグを使用して、私は実際にいくつかのjavascriptを圧縮するために同じコードを使用してみました、そして、それはそれをうまくキャッシュします。ここでキャッシングgzipped css
はコードです:
if(extension_loaded('zlib')){ ob_start('ob_gzhandler'); } $offset = 60 * 60 * 24 * 31; header('Content-type: text/css'); header ('Cache-Control: max-age=' . $offset . ', must-revalidate'); header ('Expires: ' . gmdate ("D, d M Y H:i:s", time() + $offset) . ' GMT'); ob_start("compress"); function compress($buffer) { // Remove Comments, White Space, End ;'s $buffer = preg_replace('#/\*.*?\*/#s', '', $buffer); $buffer = preg_replace('/\s*([{}|:;,])\s+/', '$1', $buffer); $buffer = preg_replace('/\s\s+(.*)/', '$1', $buffer); $buffer = str_replace(';}', '}', $buffer); $buffer = str_replace(' {', '{', $buffer); return $buffer; } include('global.css'); if(extension_loaded('zlib')){ ob_end_flush(); }
は、それから私は、単に他のページのCSS文書としての私のPHPファイルを参照しています。 私はミックスに最大年齢を追加しようとしましたが、これも失敗していることがわかりました。
ここでレスポンスヘッダは
Date Tue, 21 Jul 2009 19:59:19 GMT Server Apache/1.3.41 (Darwin) PHP/4.4.9 X-Powered-By PHP/4.4.9 Cache-Control max-age=2592000, must-revalidate Expires Thu, 20 Aug 2009 19:59:19 GMT Content-Encoding gzip Vary Accept-Encoding Keep-Alive timeout=15, max=93 Connection Keep-Alive Transfer-Encoding chunked Content-Type text/css
私は欠けているもの、またはこれを行うことについて移動する良い方法はありますか。
おかげで、
EDIT:それは、適切なヘッダとの組み合わせで、この問題を解決したしていない場合、ファイルが304送信&を変更されたか否かを検出
スクリプト。
アーサー
Hey Anthony、 私は、あなたが幸運のない、後の修正日と以前の修正日の組み合わせで示唆したように、Last-Modifiedを追加しようとしました。 以来、私はETag&Ifで修正されたヘッダーを送信しましたが、まだキャッシュされていません... お返事ありがとうございます。今後の参考とデバッグのために、この点を念頭に置いておきます。 – askon
@askon:これらは重要な要素ではありませんでしたが、重要な問題は、Cache-Controlヘッダーにmust-revalidate命令を含めることです。これを使うと、CSSは常に再フェッチされます。また、テストでページリフレッシュ(F5)を使用していますか?それは何も証明されませんが、cssのようなリソースは、リフレッシュコンテキストの下で、リソースに完全なフェッチをもたらすコードに組み込まれた304メカニズムなしで再設定されます。 – AnthonyWJones
申し訳ありませんが、もう少し具体的にすべきでした。 私はここに私のヘッダー応答だ、しなければならない再検証の行を削除しました: http://freetexthost.com/zqbddbchvz私は、テキスト/ javascriptのを除いて、まったく同じスクリプトを試すことができている理解していない何 それは200&キャッシュを示しています。 – askon