3

我已将以下内容添加到我的 web.config 以启用 14 天的图像缓存。

  <location path="Images">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlMaxAge="14.00:00:00" cacheControlMode="UseMaxAge" />
      </staticContent>
    </system.webServer>
  </location>

使用 F12 工具在 chrome 中查看时,我可以看到当我刷新时浏览器似乎仍然从服务器请求图像。它得到了 304,所以不再下载它,但在页面刷新等时,每张图片似乎仍然是一次浪费之旅。

这是正确的行为还是应该像我预期的那样根据文件的标头从缓存中提取?

4

1 回答 1

0

缓存控制是服务器端的,而不是客户端的。所以浏览器仍然需要向服务器请求文件并让服务器304知道它应该使用它的缓存副本。

考虑在下面的 HTML 中(无论图像是否设置为从缓存返回都完全相同),浏览器如何知道是下载图像还是使用缓存版本?

<img src="somefile.jpg" />

客户端不知道,因为它不像服务器在呈现给浏览器的标签上设置某种cache-image="true"属性。img

于 2013-01-25T14:43:11.823 回答