2012-02-13 11 views
1

こんにちは、画像(img_01.jpg)とのWebページに画像がロードされているキャッシュされた画像を処理しますか?ブラウザに新しいバージョンを表示させるには?

は、ブラウザによってキャッシュされます。 img_01.jpgを更新して同じ名前で保存したとします。同じページを訪問すると、古い画像がキャッシュから表示されます。

ASP.NET MVCでこれをどのように処理する必要がありますか?

通常のASP.NET(MVCなし)では、余分なコンポーネントを作成しなければならず、このコンポーネントはファイル名の末尾に乱数を追加することが分かっています。 ASP.NET MVCでこれをどうやって行うのですか?

BestRegards

答えて

0

イメージファイル名にメインオブジェクトのバージョン番号を使用することにしました。これにより、エンドユーザーは常に正しいイメージを表示します。

1

あなたは有効期限のヘッダを追加するHTTP handlers for imagesを使用することができます。ただし、有効期限ヘッダーが正しく使用されているかどうかは、主にブラウザーによって異なります。助けてくれますか?

+0

ええ、あなたのリンクを見て、私はこのような何かをやっていることを覚えています。私がしたことは、このような最後に乱数を追加することでした:myimage.jpg?id = [random]、これは、イメージがサーバーから毎回ロードされたことを確認しました。しかし、この記事ではIISの何かを変更する必要はありませんでした。問題は、実際のファイル名の最後にランダムな文字列を追加するのが本当に良いかどうかです。この最後の解決策は、新しい乱数(更新された)が得られたときにのみ新しいイメージをダウンロードすることを意味します。 – Banshee

+0

ランダムな文字列を追加すると、イメージはブラウザの視点とは異なるリソースになります。そのような画像の名前で暮らすことができればOKです(myimage.jpg?id = 474484)。場合によっては、それは良くないかもしれません。したがって、画像へのブラウザーの要求を処理し、有効期限ヘッダー(過去に設定された日付付き)を応答に追加することができます。リソースが既に有効期限切れになっており、次にWebサーバーからリソースを再度要求すると、ブラウザに通知されます。 –

1

C#では、バインドされたイメージコントロールはURLをクエリ文字列として作成します。 例: -

string _urlPhoto = "UploadPhoto" + "/" + Imagename + "?" + Guid.NewGuid().ToString(); 

ブラウザは常に新しい要求としてそれを見て、それがキャッシュから画像を取ることはありません。

関連する問題