迅睿CMS 缓存机制解析:为什么改了内容不生效
摘要
先说结论迅睿CMS 的缓存是多层叠加的:程序缓存、模板编译缓存、浏览器缓存、CDN 缓存。改了内容不生效,90% 是后三层在作怪,而不是程序没保存。一、四层缓存各管什么层级位置失效方式程序数据缓存cache/ 目录后台清缓存模板编译缓存ca
先说结论
迅睿CMS 的缓存是多层叠加的:程序缓存、模板编译缓存、浏览器缓存、CDN 缓存。改了内容不生效,90% 是后三层在作怪,而不是程序没保存。
一、四层缓存各管什么
| 层级 | 位置 | 失效方式 |
|---|---|---|
| 程序数据缓存 | cache/ 目录 | 后台清缓存 |
| 模板编译缓存 | cache/template/ | 改模板后自动重编 |
| 浏览器缓存 | 用户本地 | 强制刷新 Ctrl+F5 |
| CDN 缓存 | CDN 节点 | CDN 后台刷新 URL |
二、按现象定位
1. 后台改了文章,前台还是旧的
- 先清程序缓存;
- 再看是否有 CDN,刷新对应 URL;
- 用无痕窗口访问,排除浏览器缓存。
2. 改了模板,页面没变化
- 确认改的是正在使用的模板,不是备份目录;
- 清缓存后模板会自动重编;
- 若仍不变,检查
cache/template/是否有写权限。
3. 部分页面变,部分不变
典型的分页缓存问题:列表第一页生成了缓存,后续页面没生成。清一次全站缓存即可。
4. 登录后看到旧内容,游客看到新的
说明登录用户命中了不同的缓存策略。检查是否有页面缓存插件把登录状态也缓存了。
三、清缓存的正确顺序
- 程序缓存(后台一键清除);
- CDN 缓存(刷新 URL 或全站);
- 浏览器缓存(无痕窗口验证);
- OPcache(若有,
systemctl reload php-fpm)。
顺序反了会出现「清了还是旧的」,因为上游缓存会把旧内容重新灌回去。
四、什么时候该关缓存
- 开发调试模板期间;
- 批量导入/修改内容后需要立即确认结果;
- 排查「保存成功但不显示」类问题时。
生产环境排查完记得及时恢复开启,否则会影响性能。
五、防止缓存问题复发
- 改内容后养成「先无痕验证,再判断是否 bug」的习惯;
- 上线 CDN 时记录好刷新方式,写进运维手册;
- 批量操作后统一清一次缓存,不要逐条试。
总结
缓存问题看起来玄,本质是不知道有几层、各层怎么失效。记住「程序 → CDN → 浏览器 → OPcache」这个顺序,绝大多数「改了不生效」都能在 5 分钟内解决。
2026年10月22日 10:42
前后30天 · 点日期看归档
9月22日
9月23日
9月24日
9月25日
9月26日
9月27日
9月28日
9月29日
9月30日
10月1日
10月2日
10月3日
10月4日
10月5日
10月6日
10月7日
10月8日
10月9日
10月10日
10月11日
10月12日
10月13日
10月14日
10月15日
10月16日
10月17日
10月18日
10月19日
10月20日
10月21日
10月22日
10月23日
10月24日
10月25日
10月26日
10月27日
10月28日
10月29日
10月30日
10月31日
11月1日
11月2日
11月3日
11月4日
11月5日
11月6日
11月7日
11月8日
11月9日
11月10日
11月11日
11月12日
11月13日
11月14日
11月15日
11月16日
11月17日
11月18日
11月19日
11月20日
11月21日