5

FileResult (png 画像) を返すアクションがあります。ブラウザが結果をキャッシュすることを心から望んでいます。これは、特定のリクエスト uri に対して変更されないためです。

ルーティングを使用して、URI を次のようにしました。

http://localhost:6094/Map/Tiles/1.0.0/none/2/5/5.png 

そして、アクションメソッドで、私は呼び出します:-

Response.Cache.SetCacheability(HttpCacheability.Public);

Fiddler では、応答に次のようなものがあることがわかります。

Cache-control: public

ヘッダ。それでも、同じマップ タイルに対する後続のリクエストは次のようになります。

    GET http://localhost:6094/Map/Tiles/1.0.0/none/2/5/5.png HTTP/1.1
Host: localhost:6094
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.34 Safari/536.11
Accept: */*
Referer: http://localhost:6094/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

その結果、200 応答が返され、データが転送されます。

Chrome が私のデータをキャッシュしようとしない理由は何ですか?

ありがとう

スリップ

4

1 に答える 1

7

OutputCache 属性を試しましたか? これで問題なく動作するはずですが、有効期間を指定してください。

http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/improving-performance-with-output-caching-cs

[OutputCache(Duration=84600)]
于 2012-06-19T16:29:01.833 に答える