【问题标题】:Why doesn't Safari cache this image even though Cache-Control is `public, max-age=31536000`为什么即使 Cache-Control 是“public, max-age=31536000”,Safari 也不缓存这张图片
【发布时间】:2023-01-28 18:45:58
【问题描述】:

它适用于 macOS 上的 Chrome,但不适用于 Safari + macOS(或 iOS)

https://meo.comick.pictures/YKm6O.jpg

【问题讨论】:

  • macOS 13.2 (22D49) 上的 Safari 16.3 (18614.4.6.1.5) 似乎一直在做正确的事情——如果我强制通过网络加载,如果我在同一会话中返回则从内存缓存加载,如果我返回则从磁盘缓存加载关闭浏览器后。

标签: http caching safari mobile-safari


【解决方案1】:

嗯,我也遇到过这样的问题。

对我来说,即使 Cache-Control 标头设置为 public,max-age=31536000,Safari 仍未缓存图像的原因可能有很多。一些可能的原因包括:

  • 图像 URL 包含查询参数,可以防止在某些浏览器中进行缓存。
  • 服务器配置可能有问题,例如 Expires 标头或 ETag 值有问题。
  • 浏览器的缓存可能已满,或者浏览器的缓存存储有问题。
  • 图像可能是通过不安全的连接(HTTP 而不是 HTTPS)加载的,这可能会阻止某些浏览器中的缓存。
  • 先前对图像的请求可能包含值为 no-cache 的 Cache-Control 或 Pragma 标头。

最好调查图像的请求和响应标头,看看是否有任何其他冲突标头。还要检查浏览器的开发人员控制台是否有任何与缓存相关的错误。祝你好运

【讨论】:

    猜你喜欢
    • 2015-10-19
    • 2018-11-12
    • 2019-07-09
    • 2018-03-11
    • 2021-05-18
    • 1970-01-01
    • 2018-11-24
    • 2022-01-22
    • 2018-03-14
    相关资源
    最近更新 更多