URLにハッシュを含める場合、つまり
http://server.example.com/styles/css.css?hash
ブラウザは新しい URL から取得するため、ハッシュが変更されると再ロードされます。
バージョン 1:
<style type="text/css" link="styles/css.css?hash=v1" />
バージョン 2:
<style type="text/css" link="styles/css.css?hash=v2" />
クライアントのキャッシングはクライアントの問題です。必要に応じて実行させてください。新しい URL は、リソースが変更されたことを意味するため、リロードする必要があります。キャッシュ制御ヘッダーを使用して同じ URL を保持すると、クライアントの実装が異なるため、苦痛の世界につながる可能性があります。
キャッシュ制御ヘッダー (last-modified、expires、ETAG) を配置すると、CSS が変更されたときに更新されるかどうかを確認できません。
- 積極的なブラウザ (またはプロキシ) のキャッシュはそれらを無視する可能性があるためです。
- 5 月 1 日に有効期限が 6 月 1 日の V1 を提供し、5 月 15 日に V2 に更新すると、クライアントは新しいバージョンを取得するまで 15 日間待たなければならないためです。
URL ハッシュの場合、最悪のシナリオは、クライアントが CSS をキャッシュに入れないことですが、常に最新バージョンを取得するため、ユーザー エクスペリエンスは変更されません。
有効期限または最終更新日がある場合、最悪のケースは、クライアントが古いバージョンを取得することであり、これによりユーザー エクスペリエンスが変更されます :)