海洋 CMS 缓存开启后更新内容不刷新怎么办
结论:海洋CMS开启缓存后更新内容不刷新,绝大多数情况不是数据没写进数据库,而是缓存层还在读旧副本——按「后台清缓存 → 手动删缓存目录 → 重新生成静态页 → 刷 CDN 和浏览器」这个顺序走一遍,基本能定位到问题在哪一层。
为什么后台改完了,前台还是旧内容?
海洋CMS 的前台输出通常会经过三层缓存,哪一层没清都会表现为「更新不刷新」。
第一层是数据和模板缓存,由 CMS 自己写入缓存目录,后台点「清空缓存」即可解决。第二层是静态页,站点一旦开启 HTML 静态化,前台访问的是已经生成好的 .html 文件,你改数据库里的内容它当然不会变。第三层是浏览器和 CDN,属于本站之外的缓存。
判断方法很简单:看前台当前访问的 URL 是 .php 还是 .html 结尾。是 .html 结尾,问题基本就在静态化;是 .php 结尾还不变,那就是数据缓存或 CDN。
海洋CMS清缓存的具体步骤是什么?
结论:先用后台自带的清缓存入口,它没效果再去文件系统手动删。
- 登录后台,进「系统」相关菜单,找「清空缓存 / 更新缓存 / 缓存管理」这类入口(不同版本菜单名不完全一样),执行一次。
- 如果点了没用,用 FTP 或主机文件管理器进入缓存目录,删除目录内的文件,不要删目录本身,否则可能因为权限问题导致 CMS 无法重新创建。
- 常见的缓存目录是
/data/cache、/data/runtime、/runtime、/cache这几类,以你站点根目录下实际存在的为准。如果实在不确定,按「最后修改时间」排序,看最近几分钟被写入的那批.php、.html文件,基本就是它。 - 删完刷新前台。如果这时内容变了,说明就是缓存层的问题,跟数据库写入无关。
静态化开着,清多少遍缓存都没用
结论:只要站点开启了 HTML 静态化,更新内容就必须重新生成静态页,清缓存解决不了。
操作路径是后台的「生成」模块,选「生成首页 / 生成栏目页 / 生成内容页」,提交任务。如果你是一次性批量更新了大量内容,要选「重新生成」而不是「补生成」,否则已存在的旧文件会被跳过。
注意两点:一是数据量大时(比如几千条以上)分批生成,PHP 默认 max_execution_time 通常是 30 秒,一次跑太多会超时中断;二是如果你不想每次都手动生成,可以在后台把内容页设为动态或直接关闭静态化,代价是并发性能下降,访问量大的站点要权衡。
浏览器和 CDN 缓存怎么排除?
结论:用无痕窗口对比一下,就能分清是你本地的问题还是服务器的问题。
- 无痕窗口打开还是旧内容 → 问题在服务器侧,回到上面两步继续查。
- 只有你自己看到旧内容、别人正常 → 纯浏览器缓存,Windows 按
Ctrl+F5,Mac 按Cmd+Shift+R强制刷新。 - 站点挂了 CDN(Cloudflare、又拍云、阿里云 CDN 等)→ 去 CDN 控制台提交 URL 或目录刷新,节点缓存 TTL 常见在 300 到 3600 秒之间,刷新后通常 1 到 5 分钟全网生效。
- 服务器上还装了 Redis、Memcached 或开了 PHP OPcache → 重启
php-fpm,或清掉 Redis 里对应的 key。OPcache 的opcache.revalidate_freq常见默认值是 2 秒,改模板文件后不生效可以临时设为 0。
缓存时间设多少才不会反复踩坑
结论:调试期把缓存时间设为 0(等于关闭),上线稳定后再开。
后台「系统参数设置」里一般有「缓存时间(秒)」这一项,默认常见值是 3600。内容更新频繁的站点可以设 300 到 600,也就是 5 到 10 分钟;一旦要改模板或调配置,先临时设 0,改完再调回去,能省掉大量「我明明改了怎么没变」的排查时间。
总结一下:更新不刷新先看 URL 后缀,.html 就去重新生成静态页,.php 就清后台缓存和缓存目录,都排除了再查 CDN、OPcache、Redis 和浏览器。90% 的情况走完前三步就解决了,剩下的基本是 CDN 节点没刷新。
原文链接:https://www.gj0.com/thread-884.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。