style.css?v=1234サーバーから etag が送信される場合、css/js のなどのパラメーター化されたバージョン クエリは不要ですか?
1 に答える
(この質問は Google で私にとってかなり上位にランクされたので、まだ探している人のために遅ればせながら回答を追加することにしました。)
あなたは正しいです。一部のプロキシ サービス (特に Squid 3 以前) はクエリ文字列を含むファイルをキャッシュしないか、クエリ文字列を無視するため、バージョン番号をクエリ文字列として追加することは、リソースのバージョン管理の最後の手段です。
一部の古いブラウザーは、クエリ文字列を使用したリソースのキャッシュを処理できないと一般的に考えられていますが、この都市伝説が確認されたことはまだありません。
サーバー ヘッダーを構成できない場合は、ファイル名自体にバージョン番号を追加するのが最善であるため、これを行わないでください。
css.css?v=2.0
ただし、代わりに次のようにします。
css-2.0.css
もちろん、ヘッダーを変更できる場合は、それを使用してください。Etagは 90 年代からサポートされているため、リソースのバージョン管理に確実に賭けることができます。Expires、 、もCache-ControlありLast-Modifiedます。アプリケーションのニーズに合わせてこれらのヘッダーを組み合わせて (すべてではない) 使用する必要があります。
実用的な良い例については、 Google DevelopersとYahoo!で HTTP ヘッダーとキャッシュの詳細を読むことをお勧めします。開発者ネットワーク。結局のところ、彼らは知っているはずです。