MVC数据库图像未被缓存

时间:2017-04-13 03:21:04

标签: c# asp.net-mvc image

我正在将数据保存在我的数据库中,并使用以下代码检索它们

df[column]

问题是,每次刷新页面时,都会再次下载它们。如何将它们存储在缓存中?

2 个答案:

答案 0 :(得分:1)

客户端浏览器无法缓存Base64图像,因为图像数据本身嵌入在src中,而不像可以通过HTTP请求请求的资源

场景A(“正常”图像):

  1. 在浏览器中加载页面
  2. 浏览器阅读图片代码并发出请求@“src”以检索资源
  3. Web服务器通过提供资源
  4. 来响应请求
  5. 浏览器渲染图像
  6. 场景B(base64图像):

    1. 在浏览器中加载页面
    2. 浏览器读取图片标记,因为base64 数据已经描述了图片的外观,浏览器会愉快地呈现它而不再向Web服务器发出请求。
    3. 提示:您可以尝试通过右键单击然后“另存为...”保存页面并观察输出。 base64图像作为数据本身嵌入html中,但不作为另一个文件夹中的资源嵌入。

      P / S:@ mmushtaq提到的缓存方法是服务器端缓存,如果你通过ActionResult重新获取base64数据image.Content,它可能会很有用。

答案 1 :(得分:0)

    <staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365:00:00" />
</staticContent>

在system.webServer中的Web.config文件中添加此行以进行静态内容缓存,并使用ETag过滤器。

希望这个缓存过程对您有所帮助。