web-dev-qa-db-ja.com

クエリ文字列を使用することと、CSS / JSファイルにバージョン番号を埋め込むこととのトレードオフ

CSS/JSファイルでのバージョン番号の使用に関する記事やフォーラムの投稿を読んでいました。

ファイル名にバージョン番号を埋め込む方が、クエリ文字列を使用するよりも信頼性が高いことがわかります。私が見つけた記事と議論は、2008年頃に遡ります。今日もそうなのか、それともブラウザとサーバーの処理方法が変わったのかと疑問に思っていました。クエリ文字列の信頼性は等しくなりましたか?

4
user1448031

明確にするために、質問で明示的に言及されていないので、最初にこれを行う理由は、クライアントのキャッシュを破ることです...

私が知っている限り、「動的な」クエリ文字列を使用してファイル名自体に「埋め込みバージョン番号」を使用する唯一の理由は、一部の(古い?)プロキシサーバーがクエリ文字列のみによって変化するURLをキャッシュしなかったことです-クエリ文字列は単に無視されました。ブラウザ(およびサーバー)でクエリ文字列メソッドに問題が発生したことはありません。

あなたが言うように、それらの記事は2008年のものです。最近の状況は「より良い」と思います。

最初にリンクする記事 は、クエリ文字列でリソースをキャッシュできない「Squid」プロキシサーバーを指します。 「当時」のデフォルト設定ではこれが当てはまりましたが、 このServerFault.comの質問 に従ってクエリ文字列をキャッシュするように設定できます。そして、その答えに対するコメントによると、これは「バージョン2.7(2008)」のデフォルト設定になりました。

Squid Cache Wiki-動的コンテンツのキャッシュ から:

Squidのobsoleteデフォルト構成は、動的コンテンツ(URIに?が含まれるページ)のキャッシュを防ぎます...そのポリシー設定は一度に作成されました動的なページに適切なCache-Controlsがめったに含まれていなかったが、現在は変更されています。 Squid 2.7および3.1のリリースから、Squid開発者はこのキャッシュポリシーの変更を推奨しています。

Stack Exchangeサイトは一般にベストプラクティスに従うと見なされ、これらのサイトはクエリ文字列方式を使用します。

7
MrWhite