0

我希望缓存我的 mvc 3 应用程序中的图像。我在 web.config 中编写了一个缓存配置文件:

caching>
  <outputCacheSettings>
    <outputCacheProfiles>
      <add name="ImageCache" duration="10" location="Server" noStore="true"/>
    </outputCacheProfiles>
  </outputCacheSettings>
</caching>

并将 OutputCacheAttribute 添加到返回图像的方法中:

[OutputCache(CacheProfile = "ImageCache")]
public FileContentResult GetImage(int productId) { /* implementation */ }

问题:

1)如何验证图像是否被缓存?

2) 最好的位置是什么:客户端、服务器或任何?我的应用是一个网上商店,每张图片都附在产品上。我认为每个用户都应该看到相同的缓存内容。有什么建议么?

3)也许这个真的很傻:客户端和浏览器缓存有什么区别?

提前感谢您的帮助!

4

1 回答 1

1

1.)您可以随时在浏览器中检查它是否在随后对站点的请求中获取图像。例如,在 chrome 中,您可以按 F12 访问开发者工具,然后在网络选项卡下查找您的图像。Http 状态 304(未修改)将是您要查找的状态。

2.) 不太确定不同设置的利弊。

3.) 客户端缓存意味着资源缓存在您的浏览器中。基本上,您的浏览器不必重新下载图像。服务器端意味着它可以被服务器/代理缓存。例如,如果您必须查询数据库中的图像,如果图像已经在服务器缓存中,则不再需要。但是客户端仍然必须始终从服务器获取它。

于 2013-02-07T19:31:04.143 回答