后台修改了数据,用户刷新页面看到的还是旧内容,网络面板显示 304。日志里能对上时间点,这种反而好排。
服务端返回了协商缓存头,客户端带上旧标识后服务端直接回 304 不再返回内容。这一点先确认清楚,后面就不用反复试。
Cache-Control: no-store, no-cache, must-revalidate # 或按版本 ETag: "v20261109-1"
「接口 304 缓存」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。
报错里带路径的,先去看那个路径在不在、权限对不对。同一份配置存在多处的,先确认改的是被加载的那一份。
新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
处理上按这个顺序:动态接口禁用协商缓存;数据变更时更新版本标识;静态资源才使用强缓存。
结果对不对很好判断,修改数据后刷新页面立即显示新内容,接口不再返回 304。