改版后页面不刷新,多数是缓存规则没分开配。结论是 HTML 入口页走协商缓存、图片与 JS/CSS 走长缓存加文件名哈希,再用 CDN 刷新与验证清单收口。
一、HTML 与静态资源要分开设置缓存
结论:HTML 入口页用 no-cache 或一般数分钟的短缓存,图片、CSS、JS 用长缓存,两者共用一套规则是改版后不刷新的常见原因。
- 入口页:每次回源校验,保证内容更新能及时看到。
- 静态资源:文件名不变就认为内容不变,可以放长缓存。
- 后台管理类页面通常设为
no-store,避免缓存含登录态的数据。
二、文件名带哈希或版本号
结论:用 app.a1b2c3.js 这类内容哈希做缓存失效手段,比上线后手动清缓存更可控。
- 构建时给文件名加内容哈希,内容变化则文件名变化。
- 老项目改造不了,可用
app.js?v=20260917这类查询串形式。 - HTML 里的引用路径交给构建工具替换,不要手工改动。
三、Cache-Control 的取值怎么填
结论:静态资源一般用 public, max-age=31536000, immutable,HTML 一般用 no-cache 配合协商缓存。
max-age单位是秒,31536000 约为一年。immutable可减少重复校验请求,浏览器支持情况以官方兼容性说明为准。- 带个人信息的接口响应通常不设公共缓存。
四、ETag 与 Last-Modified 的协商缓存
结论:长缓存到期或走 no-cache 时,由 ETag 做内容比对,内容没变返回 304,一般只传响应头不传正文。
- Nginx 对静态文件默认生成 ETag 与 Last-Modified,一般无需额外配置。
- 多台服务器要保证 ETag 生成规则一致,否则校验会失效。
- 在浏览器开发者工具的 Network 面板可以看到 304 的命中情况。
五、CDN 与源站的刷新顺序
结论:发布时先确认源站已更新再刷新 CDN,顺序反了一般会出现部分地区仍是旧版的情况。
- 按 URL 或目录提交刷新,避免整站刷新带来回源压力。
- 刷新后等待生效,一般需要数分钟,具体时长以服务商公告为准。
- 保留上一次发布的资源文件,便于快速回滚。
六、改版上线的验证清单
结论:用无痕窗口加清缓存的方式验证,比只用自己的电脑更接近真实用户看到的结果。
- 无痕窗口打开首页,确认 HTML 引用的资源路径是新版本。
- 查看响应头里的
Cache-Control与x-cache字段。 - 检查状态码是 200 与 304 的合理组合。
- 让不同网络环境的同事各访问一次,确认展示一致。
玉晗网络(安徽安庆)提供网站建设、微信小程序开发、SEO优化、GEO优化与服务器运维托管。缓存规则属于一次配好长期受益的基础项,安庆本地的中小企业做官网改版或日常维护时,可以先按这份清单核一遍,再决定要不要调整 CDN 策略。
作者:玉晗网络(安徽安庆 · 网站建设 / 小程序开发 / SEO 优化)
发布:2026-09-17 | 最后更新:2026-09-17
转载声明:本文为原创内容,欢迎注明出处转载。如需引用数据请核对发布日期。