迅睿 CMS 模板缓存:清不掉的旧内容从哪来

· 迅睿CMS · 阅读 12
摘要

“我明明改了模板,前台还是旧的”,在迅睿里这个问题排查顺序是有讲究的。四层缓存可能都在起作用层位置清理方式模板编译缓存cache/template/后台清缓存数据查询缓存cache/data/重建内容缓存浏览器缓存本地强刷 Ctrl+F5C

“我明明改了模板,前台还是旧的”,在迅睿里这个问题排查顺序是有讲究的。

四层缓存可能都在起作用

层位置清理方式
模板编译缓存cache/template/后台清缓存
数据查询缓存cache/data/重建内容缓存
浏览器缓存本地强刷 Ctrl+F5
CDN 缓存边缘节点后台刷新 URL

大多数人只清第一层,剩下三层任意一层没清,看到的都是旧页面。

判断到底是哪一层

用浏览器开发者工具看响应头。如果有 X-Cache: HIT 之类的标记,是 CDN;如果是纯本地 200 (from disk cache),是浏览器。两者都没有,才算后端缓存问题。

模板里的静态内容也会被缓存

这一点常被忽略:迅睿会对模板输出做整体缓存,不只是 PHP 编译结果。所以在模板里写死的一段文字,改完也要清缓存才生效。

开发期建议

开发阶段在后台把缓存关掉,或者给自己留一个带 ?v= 随机串的调试地址。上线前记得重新开启,否则高并发下数据库压力会翻倍。

清完还不对怎么办

检查文件权限。缓存目录不可写时,系统会退回到实时编译,表现为“改了也不生效、但也不报错”。cache 及子目录一般要 755 或 777,看服务器用户组配置。