【问题标题】:Browser doesn't cache images despite cache header when html is not cached不缓存html时,尽管有缓存标头,但浏览器不缓存图像
【发布时间】:2013-10-21 06:57:17
【问题描述】:

我正在使用 HTTP 标头“Cache-Control”缓存我们生成的图像,但是,当我不使用“no-cache”缓存 HTML 文件(包括那些 img 标签)时,我看到更多请求发送到服务器(当我添加、删除和重新添加这些标签时)。缓存 HTML 文件会导致缓存图像(并且没有进一步的请求)。
我能找到的唯一类似案例是this
任何线索/链接将不胜感激。

浏览器:版本 32.0.1661.0 canary Aura
p.s.我非常喜欢不缓存 HTML 文件。

【问题讨论】:

  • 如果您查看 Web 服务器日志,它是否发送了 304 的 HTTP 状态代码,即“未修改”?如果是这样,服务器将不会重新发送图像。
  • 我得到状态码:200 OK(每次)
  • 对于 Chrome,200 OK 并不一定意味着请求离开了客户端。在许多情况下,响应是缓存版本的重新传输,并且永远不会到达服务器。状态将是200,这是有道理的,但状态消息将是OK(不是“缓存”),这在某些时候让我发疯了。我能在这些响应和实际响应之间找到的唯一区别是:缺少 Connection 标头(否则几乎总是存在)和 Date 标头,其值在发送的请求之前。你的请求真的到达服务器了吗?
  • @OphirRadnitz,我在服务器上使用了调试器 :)

标签: http google-chrome caching no-cache


【解决方案1】:

Eugene Olshenbaum answered on twitter: "关闭开发者工具,当它打开时,chrome 会忽略标题 :))" 开发工具打开时,缓存被“禁用”。如果 HTML 文件被缓存,不知道为什么我没有看到对服务器的任何调用。

【讨论】:

  • 这个。即使没有勾选“禁用缓存”,我也没有看到“从缓存”加载任何资源,并且 TTFB 很高。关闭开发工具检查器会导致图像立即从缓存中加载。似乎缓存控制标头被忽略了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
  • 2020-07-06
  • 2017-09-18
  • 2018-04-29
  • 1970-01-01
  • 2023-04-05
  • 2017-12-10
相关资源
最近更新 更多