广告后台配了三条轮播,前台连续 6 小时都是同一条,换浏览器看也一样,缓存过期后才换。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,整页缓存把广告的 HTML 一起存了下来,轮换逻辑在前端也没做。缓存键只按 URL 生成。

「广告轮换缓存」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

curl -sI https://example.com/post/1 | grep -i x-cache
# 广告接口单独返回三条素材

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

具体做法是,广告位改成异步请求,页面只留占位容器;或者把广告片段排除在整页缓存之外;轮换逻辑放前端定时拉取,按曝光次数切换;清一次缓存后观察两小时,确认广告有变化。

最后用这个标准收尾,同一页面两小时内广告有轮换,缓存命中时也不锁定同一条。

作者 9823189