- - PR -
【fileupload】ブラウザで画像ファイルが更新されない
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-07-27 12:01
ogeretyouさん
検証される時、IEのキャッシュは毎回クリアされていたでしょうか? IEだとno-cacheなど指定してもダメとのことですが、IEにキャッシュされている状態のままであれば結局はサーバーに要求を出しませんから、毎回キャッシュクリアして検証されることをお薦めします。 すでにそうされているならスミマセン |
|
投稿日時: 2005-07-28 01:29
みなさん、どうもありがとうございました!
一応、問題は解決しました。 まず、 まほさんのアドバイスにある、 「最初にIEのキャッシュをクリアしておく」 について、キャッシュをクリアしてアクセスしてみましたが、 やはりダメでした… 次に、 あるサイトで、 「Expires: 0 とか(-1とか)書いても, Last-Modifiedが設定されていてかつ変更がないとキャッシュを読むので, 読み込ませたければ Last-Modified をちゃんと更新すること」 とあったので、 昨日実装したServletFilterに httpResponse.setDateHeader("Last-Modified", cal.getTime().getTime()); を追加してみましたがダメでした… 続いて、 かつのりさんからアドバイスのあった、 「<img src="hoge.jpg?151232312">」 のようにイメージタグのURLにGETパラメータを動的に付加してみたところ、 キャッシュを読み込まず正常稼動を確認しました。 (ちなみに、「<img src="hoge.jpg?">」ではキャッシュされてしまいました)」 ============================================================== ・キャッシュは"ファイル名"ではなく、"URL"で行われる ・imgタグのURLで画像ファイルにGETパラメータを設定、とかできる (GETパラメータ自体は無視される? -> 表示に支障は無い) ============================================================== 動的生成されたURLで画像自体はキャッシュされてしまいますが、 今回は該当の画像表示のimgタグ全てに上記のような実装を行うことで対応するつもりです。 また、今回は試していないのですが、 Apacheのmodule_headerにて対応する方法も有効かもしれません。 自分の思い込みでは、 「Apacheのmoduleで設定するとコンテンツ全てに対してno-cacheを設定することになる」 と思ったのですが、もしかしたら、 /webapp/images/nocasheimages/* のような指定方法でno-cacheにするURL指定できる、、、んでしょうか (すみません未確認です。確認できたらこのスレッドを掘り起こして自己レスします。) 今回のまとめ ・HTTPヘッダの指定でPragma,Cache-Control等の指定をしても、 ブラウザによってキャッシュされてしまうことがある(?) なんとなく腑に落ちない感じが残りますが、目的は達成することができました。 みなさん、どうもありがとうございます。 |