缓存与版本策略配置器

最阴的一类故障:服务器一直在返回 200,页面却一直报错。 我们的后台脚本因为 nginx 的 expires 7d 被浏览器缓存了七天,脚本改版后浏览器还在跑旧版本, 渲染新数据格式时崩溃,而代码把所有异常都报成「服务器读不到」——查了半天服务器,其实服务器一直正常。 这个工具按文件类型生成一套不会互相打架的缓存策略,外加一份响应头自检脚本。

免费 · 无需登录 本地生成 · 内容不上传 对应事故 · 长缓存版本错位 → 后台假故障

1站点信息

格式建议 YYYYMMDD + 序号字母(今天第一版 a,同日再改 b)。

2选择你有的文件类型

不确定的都勾上,多出来的片段删掉就行;漏掉的类型才是出事的地方。

3策略选择

结果策略概览

输出nginx 缓存片段

0 行
—

输出响应头自检脚本

0 行
—
改完配置一定要跑:看的是响应头,不是配置文件。配置文件写对了但没生效,是常有的事。

速查现象 → 真凶 → 怎么确认

现象真凶怎么确认
改了 CSS / JS,线上「看起来没生效」长缓存 + 引用没有版本号curl -I 看 max-age;换新版本号再发
服务器日志全 200,页面却报「数据读不到」浏览器跑旧脚本,渲染新数据格式时崩溃,被 catch 谎报成网络故障控制台看报错行;脚本改 no-cache 后 Ctrl+F5
有的页面新、有的页面旧同一个 CSS 被多个页面引用,只改了其中几个的版本号全站搜该资源名,批量升版本
后台改完要等好几天才生效后台页面被设成长缓存后台一律 no-store
数据一直是最旧的数据接口被 CDN 或浏览器缓存接口 no-store;fetch 带时间戳参数
本机 curl 正常、用户浏览器不行CDN 那一层还在缓存旧版本用 -H 'Cache-Control: no-cache' 对比,并在 CDN 控制台刷新
这个坑我们踩过

1 · 服务器 200,页面报错。后台脚本被 expires 7d 缓存,改版后浏览器仍在跑旧脚本,旧脚本解析新数据格式时崩溃,而 catch 把渲染异常也报成「服务器读不到」,方向完全带偏。

2 · 修法:后台脚本单独 no-cache。location = /assets/js/admin.js { add_header Cache-Control "no-cache"; }——精确匹配会压过静态资源的正则长缓存规则。

3 · 报错文案要分流。「数据已到达但渲染崩」和「网络请求失败」必须报成两句话,否则排查方向会被带偏两天。

4 · 简单规则记住一条就够:设长缓存就必须带版本号;不带版本号的一律不长缓存。