You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Nginx配置的Cache-Control在Chrome中不生效?

可能导致缓存未生效的原因及排查方向
  • Nginx配置未正确匹配请求路径
    检查你的location规则是否准确覆盖了/placeholder/300x400这类请求路径。如果路径匹配范围错误,Nginx不会给目标请求添加Cache-Control头。可以直接在服务器执行curl -I https://z.wiki/placeholder/300x400,查看实际返回的响应头,确认Cache-Control是否存在。

  • Cache-Control参数设置不合理
    如果配置里包含no-cache、no-store或max-age=0这类指令,浏览器不会缓存资源。比如no-cache会强制浏览器每次验证资源有效性,表现为无本地缓存;no-store则完全禁止缓存。需确认配置的是public, max-age=86400这类允许缓存的参数。

  • Chrome开发者工具禁用了缓存
    打开Chrome开发者工具(F12),检查「Network」面板顶部的「Disable cache」选项是否被勾选。若勾选,浏览器会强制跳过缓存逻辑,即使响应头配置正确也不会缓存资源。

  • 响应头存在冲突的缓存指令
    除Cache-Control外,检查响应中是否存在Pragma: no-cache或Expires头。Pragma: no-cache会覆盖部分Cache-Control规则;若Expires时间早于当前时间,浏览器也不会缓存资源。

  • 后端服务自身输出了缓存头
    如果你的占位图后端程序也返回了Cache-Control头,Nginx默认不会覆盖它,最终响应头会是后端输出的内容,而非Nginx配置的规则。可暂时关闭后端的缓存头输出,再测试Nginx配置是否生效。

  • HTTPS环境下的缓存限制
    HTTPS环境中,若Cache-Control未明确设置public参数,部分浏览器会对私有缓存施加更严格的限制。确保指令包含public,允许浏览器及中间节点缓存资源。

内容的提问来源于stack exchange,提问作者timy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:05:50