トップ回答者
IE11でのキャッシュのクリアについて

質問
-
VB.NetでWebページを作成していますが、
ページ上の新規に追加したいアイコンが、別の端末で表示されない状態が続いています。
IE上の設定でキャッシュをクリアすれば、問題は解消されますが、
PG上で強制的に最新ファイルを読み込むように以下の記述をヘッダーに追加しても、
再読み込みされない状態が続いています。
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">強制的に再読み込みさせる方法をフォーラム上でも探しながら
色々試していますが、うまくいかないです。
IEの設定変更は、PCのポリシーの設定により通常は変更不可になってしまうのと、
ファンクションキー等の操作は、禁止しているため、
PG上での対応で何とかしたいと思っています。
環境としては以下の通りです。
Windows Server 2012R2 IIS8.5
IE11が影響しているのかどうか等、何かわかる情報があればご教示ください。
回答
-
> アイコン自体は、テキストエリアの左に必須マークの画像ファイルを追加しています。
それを ASP.NET でどのように行っているのですか?
(1) Chart コントロールのように動的に .png 画像を生成し、src 属性に画像データの取得方法を指定・設定した img 要素をレンダリングするというようなことをしているのですか?
(2) それとも、静的な画像ファイルの url を、静的な ASP.NET の Iamge コントロールの ImageUrl に静的に設定(または、静的な img 要素の src 属性に静的に設定)というようにすべて手動で「追加」しているのですか?
どちらにせよ、サーバー側の ASP.NET のコードによる対応でブラウザのキャッシュを消去することはできないので、画像を変更したら src 属性の設定を変更してブラウザが別の画像であることを認識できるようにするか、HTTP ハンドラを作って応答ヘッダをキャッシュされないように設定すると言う方法を取ることになると思います。
具体的にどういう方法がいいかは、質問者さんがどのように「必須マークの画像ファイルを追加」しているかによりますので、そこを詳しく書いてください。
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年8月10日 8:28
- 回答としてマーク 立花楓Microsoft employee, Moderator 2017年8月17日 4:44
-
アイコンの画像がプログラムで生成されるページとは別に静的なリソースとして配置されているのであれば、ページに対してキャッシュを無効にする指定をいくらやっても無駄です。その場合に必要なのはアイコン画像のコンテンツをキャッシュさせないことなので、画像を返す HTTP ヘッダーに cache-control ヘッダーでキャッシュの禁止を指定することでしょう。
またはアイコン画像をページとは別のリソースにしないで、ページ内に data URI などで埋め込む方法も考えられます。
hebikuzure
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年8月14日 0:29
- 回答としてマーク 立花楓Microsoft employee, Moderator 2017年8月17日 4:44
すべての返信
-
> ページ上の新規に追加したいアイコンが、別の端末で表示されない状態が続いています。
その「アイコン」とは .jpg などの画像ファイル? どのように「追加」したいのですか?
「別の端末」とは具体的に何ですか? 別でないのと別なのとでは何が違うんですか?
> IE上の設定でキャッシュをクリアすれば、問題は解消されますが、
IE11 に限った問題なのですか? それとも IE に限らないブラウザ一般のキャッシュの問題?
> PG上で強制的に最新ファイルを読み込むように以下の記述をヘッダーに追加しても、
PG って何ですか? プログラム? であれば何のプログラムですか? ASP.NET のサーバー側のコード? その PG とやらでブラウザ一般のキャッシュの問題を解決したいと言ってます?
-
>その「アイコン」とは .jpg などの画像ファイル? どのように「追加」したいのですか?
アイコンは、画像ファイル(*.png)です。アイコン自体は、テキストエリアの左に必須マークの画像ファイルを
追加しています。
>「別の端末」とは具体的に何ですか? 別でないのと別なのとでは何が違うんですか?
現象が発生する端末と、そうでない端末があると意味です。
違いは、IEの設定で
IEの設定⇒インターネットオプション⇒「全般」タブの「設定」ボタンを押下
「インターネット一時ファイル」タブ内で、
"●自動的に確認する"を選択しているものと、
"●Webサイトを表示するたびに確認する。"の違いがあります。> IE11 に限った問題なのですか? それとも IE に限らないブラウザ一般のキャッシュの問題?
IE11で動作させるシステム環境のため、IE11の環境で類似の問題がないかを
教えて欲しいと思っています。
(ブラウザ一般のキャッシュの問題というのもあるのかもしれないですが)
> PGって何ですか?プログラム?であれば何のプログラムですか? ASP.NET のサーバー側のコード? その PG とやらでブラウザ一般のキャッシュの問題を解決したいと言ってます?すみません。。PG=プログラムです。ASP.Netのサーバ側のコードです。
IEの設定がユーザ側のポリシーで変更ができないため、
プログラムで何とか解決したいと言っています。よろしくお願い致します。
-
> アイコン自体は、テキストエリアの左に必須マークの画像ファイルを追加しています。
それを ASP.NET でどのように行っているのですか?
(1) Chart コントロールのように動的に .png 画像を生成し、src 属性に画像データの取得方法を指定・設定した img 要素をレンダリングするというようなことをしているのですか?
(2) それとも、静的な画像ファイルの url を、静的な ASP.NET の Iamge コントロールの ImageUrl に静的に設定(または、静的な img 要素の src 属性に静的に設定)というようにすべて手動で「追加」しているのですか?
どちらにせよ、サーバー側の ASP.NET のコードによる対応でブラウザのキャッシュを消去することはできないので、画像を変更したら src 属性の設定を変更してブラウザが別の画像であることを認識できるようにするか、HTTP ハンドラを作って応答ヘッダをキャッシュされないように設定すると言う方法を取ることになると思います。
具体的にどういう方法がいいかは、質問者さんがどのように「必須マークの画像ファイルを追加」しているかによりますので、そこを詳しく書いてください。
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年8月10日 8:28
- 回答としてマーク 立花楓Microsoft employee, Moderator 2017年8月17日 4:44
-
アイコンの画像がプログラムで生成されるページとは別に静的なリソースとして配置されているのであれば、ページに対してキャッシュを無効にする指定をいくらやっても無駄です。その場合に必要なのはアイコン画像のコンテンツをキャッシュさせないことなので、画像を返す HTTP ヘッダーに cache-control ヘッダーでキャッシュの禁止を指定することでしょう。
またはアイコン画像をページとは別のリソースにしないで、ページ内に data URI などで埋め込む方法も考えられます。
hebikuzure
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年8月14日 0:29
- 回答としてマーク 立花楓Microsoft employee, Moderator 2017年8月17日 4:44