后台已经发布新版本,未登录访客打开还是几小时前的页面,登录后才正常。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,静态页面被节点缓存且过期时间较长,更新时只清了源站缓存没有通知节点。
「CDN 页面缓存」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
# 刷新
curl -X POST https://cdn.example.com/purge -d '{"urls":["https://www.example.com/a.html"]}'
# 响应头
Cache-Control: max-age=300
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
具体做法是,发布后主动刷新对应 URL;对动态页面设置较短缓存或不缓存;用版本参数区分文件。
最后用这个标准收尾,发布后访客刷新即可看到新内容,节点缓存按预期过期。