キャッシュを読ませず、常にサーバーから取得させる方法

画像などの更新時に、ブラウザで再読込して見たら古いキャッシュが表示されてしまう。なんてことよくあります。そんなときは以下のような感じで対応してみませう。

<img src="hoge.gif?適当な文字列">

この適当な文字列を毎回変えるような仕組みにしておけばいいわけです。例えば、日時だったり、乱数だったりね。そうしたらブラウザは新しいリソースだと思って、サーバーに取得しに行くわけです。

方法はこんな感じかと。

  • 静的なHTMLな場合:JavaScriptなどで埋め込む。
  • CGIなど:関数でも入れればいいんぢゃないか。

CGIの場合、あたくしはPerlでこう書いて「時間+乱数」をクエリーとしました。

my $omake = time.int(rand(100))

こんな感じ!

<img src="hoge.gif?$omake">

これでキャッシュも怖くないぞー。(たぶん)