asp.net - MVC3 中 FileResult 操作的缓存

标签 asp.net asp.net-mvc asp.net-mvc-3

我有一个返回 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

标题。然而,对同一 map 图 block 的后续请求如下所示:-

    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 不缓存我的数据吗?

谢谢

滑动

最佳答案

您尝试过 OutputCache 属性吗?这应该适合您,但要指定它的生命周期。

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

例如

[OutputCache(Duration=84600)]

关于asp.net - MVC3 中 FileResult 操作的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11104676/

相关文章:

c# - 在 MVC 中反序列化 JSON

asp.net - 在 ActionLink 内添加 div

css - Html.ActionLink 访问过

asp.net-mvc - PRG 模式有没有在验证失败时不重定向的名称?

asp.net-mvc-3 - MEFContrib.MVC3:导出具有基类的 Controller

c# - 使用 Ajax 将 json 从 Javascript 返回到 aspx

c# - 使用斜杠定义 ASP.NET MVC 路由

c# - 使用电子邮件地址作为 loginID 登录到 asp.net 应用程序

c# - 如何从 ASP.Net 和 C#.Net 代码生成流程图?

c# - 在经过 Window 身份验证的 Intranet 站点中允许未经身份验证的 ASP.NET MVC 3 用户