我已将以下内容添加到我的web.config中,以启用14天的图像缓存。
<location path="Images">
<system.webServer>
<staticContent>
<clientCache cacheControlMaxAge="14.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>
</system.webServer>
</location>
使用F12工具在chrome中查看时,我可以看到浏览器在刷新时似乎仍然从服务器请求图像。这是一个304,所以不再下载它,但仍然看起来像页面刷新等每个图像浪费的旅行。
这是正确的行为还是我应该根据它对文件的标题从缓存中拉出来?
答案 0 :(得分:0)
缓存控制是服务器端,而不是客户端。因此,浏览器仍然需要向服务器询问该文件,并让304
知道它应该使用其缓存副本。
考虑以下HTML(无论图像是否设置为从缓存返回都完全相同),浏览器如何知道是下载图像还是使用缓存版本?
<img src="somefile.jpg" />
客户端不知道,因为它不像服务器在呈现给浏览器的cache-image="true"
标记上设置某种img
属性。