Cache Bustingとは
Webブラウザの仕様により、ファイルのURLが同じ場合は、 サーバに取りに行かずに、ブラウザが持っているキャッシュファイルを 使用することがあります。
したがって、サーバが同じファイル名で中身だけ更新すると、 クライアントに反映されない可能性があります。 これを避けるための技術がCache Bustingです。
日本語ではそのまま「キャッシュバスティング」と呼ばれます。
キャッシュバスティングの手法
主に3パターンがあります1。
- ファイル名を変える。
- ディレクトリを名を変える。
- URLの最後にクエリ文字列を付ける。
フレームワークが対応していれば1か2が望ましいですが、
導入しやすいため、3がよく使われます。
ただし、そもそもキャッシュされていないと意味が無いため、
Cache-Control
ヘッダの設定など行ってください。
このサイトで使っている手法
URLの最後に、クエリ文字列としてMD5ハッシュをつけています。 MD5を使っているのは、長さが最も短いのと、 この用途では、衝突する可能性を考えなくてもいいからです。
外部サイト
- 【ASP】キャッシュを有効にしつつ、cssやjsファイルの変更を確実に反映させる(Cache Busting) - Qiita
- ブラウザのキャッシュコントロールを正しく理解する - Qiita
- Add cachebursting for static resources · Issue #621 · gohugoio/hugo