要求された CSS ファイルを結合して縮小し、それらをエコーアウトするスクリプトを作成しています。ほとんどの作業は完了しましたが、小さいながらも非常に重要な作業が 1 つ残っています。それは、ブラウザーのキャッシュを活用することです。
私たちのサイトへのほとんどの訪問者は新規であり、めったに戻ってきません。したがって、私たちが本当に心配しているのは、同じセッション内のページ リクエスト間のキャッシュです。同様に、彼らは私たちのメインページにアクセスしてから、他のいくつかのページに移動して去ります.
私が抱えている問題は、特定のファイル セットごとに最後の要求時間のタイムスタンプをセッションに保存していることです。したがって、このリクエストで main.css と internet.css が必要な場合、次に main.css と phone.css で次のページ ビューを表示すると、最後のリクエストのタイムスタンプが更新されますが、同じファイル セットを再度リクエストすると、タイムスタンプが前回と変わらず。
うまくいけば、私は理にかなっています。問題は、ファイルが前回のリクエストから今回のリクエストまで変更されていない場合、304 not modified を返すことです。ただし、ブラウザは css を適切にキャッシュしていません。なぜそうしないのかについてのアイデアはありますか?
ここで私のコードを見ることができます: https://gist.github.com/4235836 (通常はここに配置しますが、ちょっと長いです)