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

CloudFront设置24小时默认缓存但HTML文件未被缓存的问题咨询

CloudFront 24小时缓存未按预期生效问题定位

首先你对缓存效果的判断依据完全错误,这是最核心的问题:

  • 你看到的「每次刷新页面显示的时间更新」,根本不是CloudFront返回了新的HTML文件。你部署的HTML里嵌入的JS脚本,是在用户浏览器本地直接读取访问者设备的当前时间,再渲染到页面上的。这段逻辑完全不需要请求服务器,哪怕你本地存的是几个月前缓存的HTML版本,每次打开页面这段JS运行时,都会显示你打开瞬间的本地时间,完全不能作为HTML是否被更新、缓存是否生效的判断标准。

正确验证CloudFront缓存是否生效的方式

不要靠页面渲染内容判断,直接看HTTP响应头的X-Cache字段:

  • 字段值为Hit from cloudfront:代表响应直接从CloudFront边缘缓存节点返回,命中缓存,配置生效
  • 字段值为Miss from cloudfront:代表当前请求CloudFront没有对应缓存,需要回源拉取内容,缓存确实未命中

你可以直接用命令行工具快速验证:

curl -I https://dhr5io29ip73w.cloudfront.net/

连续执行两次以上命令,如果第二次及之后的请求返回的X-Cache为Hit,就证明缓存配置是正常工作的。


若确认持续返回Miss,可排查以下常见配置问题

如果你验证后发现所有请求都返回Miss,再对应排查配置项:

  • 源站响应头优先级高于CloudFront控制台配置的默认TTL:默认缓存策略下,CloudFront会优先遵循源站返回的Cache-Control头规则,如果源站返回了Cache-Control: no-cache/no-store/private、Pragma: no-cache这类禁用缓存的标识,或者max-age值远小于24小时,CloudFront不会按照你设置的24小时默认TTL存储内容
  • 缓存键配置过于宽松:如果你的缓存策略把Cookie、全量请求头、查询字符串都纳入了缓存键计算范围,每次请求带的不同Cookie、自动追加的查询参数都会被判定为全新请求,无法匹配已有缓存
  • 行为路径匹配错误:确认你设置的24小时TTL缓存策略,正确关联到了根路径/对应的缓存行为,没有被其他优先级更高的路径行为覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:36:28