簡単な HTML コード:
<img src="http://someaddr/image.php">
image.php は、すべての必要なキャッシュなしヘッダーを含む静的イメージへのランダムなリダイレクトを返すスクリプトです。
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
Location: http://someaddr/random_image_12345.jpg
問題: この HTML ページに前後に移動するとき、Chrome (最新の win/mac) は address を再検証しませんhttp://someaddr/image.php
。
私はリダイレクト 302 と 303 を使用してみました (RFC では、ブラウザによって決してキャッシュされてはならないというより強い要件があります)。これは、IE、FireFox、Opera で魅力的に機能します。それらは常に更新されhttp://someaddr/image.php
ます。しかし、Chrome はそうではありません。
Chrome で開発者ツールを使用したことさえありますが、ネットワーク ログには (キャッシュされているかどうかにかかわらず) フェッチの試みが表示されていないようhttp://someaddr/image.php
です。ネットワーク ログには、http://someaddr/random_image_12345.jpg
(キャッシュされた) への接続が 1 つだけ表示されます。なんでこんなに壊れてるんだ…
クエリ文字列を画像ソースに入れる単純で単純な解決策を知っています:
<img src="http://someaddr/image.php?refresh={any random number or timestamp}">
しかし、私はそのようなハックが好きではありません/使用できません。他のオプションはありますか?