faviconが更新されないときはバージョンクエリでURLを変える
フロントエンド
ブラウザ
キャッシュ
ブラウザはfaviconをURL単位で極端に強くキャッシュし、Cache-Controlヘッダーを無視することが多い。特に/favicon.icoはlinkタグと無関係にブラウザが直接取得し、貼り付きやすい。
そのため、アイコン差し替え時にキャッシュヘッダーを設定するだけでは、すでにキャッシュ済みの古いアイコンは消えないことがある。確実なのはアイコンURLにバージョンクエリ(例: ?v=2)を付けてURL自体を変えること。差し替えのたびに数値を上げる。
併用パターン:
- ヘッダー(
Cache-Control: public, max-age=0, must-revalidate)で今後の再検証を保証(再発防止) - バージョンクエリでURLを変え、今のキャッシュを即時無効化
CDN/リバースプロキシ経由時はそちらのキャッシュパージも別途必要。