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

Cloudflare未缓存带正确标头的静态资源问题咨询

为什么Cloudflare没缓存我的JS/CSS资源(cf-cache-status: MISS)?

我来帮你排查下这个问题——虽然Cloudflare默认会缓存JS、CSS这类静态资源,但你的style.a574b.css返回cf-cache-status: MISS,结合你给出的响应头(已经设置了cache-control: public, max-age=31536000),下面是几个常见的原因和对应的解决办法:

  • 首次请求或缓存已过期
    MISS状态有时候只是因为这是该资源的首次请求,Cloudflare还没来得及将它存入缓存;或者之前的缓存条目已经过期被清理了。你可以尝试再次发起请求,看看cf-cache-status会不会变成HIT。

  • 页面规则(Page Rules)覆盖了默认缓存行为
    检查你的Cloudflare控制面板里的页面规则,有没有设置类似「缓存级别:不缓存」或者自定义的缓存规则,不小心禁用了这个CSS文件的缓存。比如如果有匹配*.example.com/*.css的规则,但设置了缓存绕过,那肯定会导致MISS。

  • 自定义缓存键(Cache Key)影响了缓存匹配
    如果你在Cloudflare的「缓存」->「缓存规则」里修改了缓存键的配置,比如加入了某些请求头作为缓存键的一部分,那可能导致即使资源本身没变,只要请求头不同,就会命中不同的缓存(或者没有缓存)。可以检查下这部分的设置。

  • 开启了开发模式
    如果你的Cloudflare账号开启了开发模式,它会直接绕过所有缓存,每次都回源服务器请求资源,这时候cf-cache-status必然是MISS。记得关闭开发模式,正常情况下它应该处于关闭状态。

  • 缓存策略还未同步到所有节点
    有时候刚修改了缓存设置或者上传了新资源,Cloudflare的全球节点需要一点时间来同步策略,尤其是跨区域的节点。可以等几分钟再测试,或者手动在Cloudflare里对该资源发起「清除缓存」操作后重新请求。

额外小建议:你可以用Cloudflare的「缓存分析」工具查看该资源的缓存详情,或者在控制面板里手动「预加载」这个资源,强制Cloudflare将它存入缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:20:55