海洋 CMS 缓存开启后更新内容不刷新怎么办

chinaz
chinaz 初级会员超兽战士
发布于 2026-10-08 09:55 ·2 浏览 ·0 回复

结论:海洋CMS开启缓存后更新内容不刷新,绝大多数情况不是数据没写进数据库,而是缓存层还在读旧副本——按「后台清缓存 → 手动删缓存目录 → 重新生成静态页 → 刷 CDN 和浏览器」这个顺序走一遍,基本能定位到问题在哪一层。

为什么后台改完了,前台还是旧内容?

海洋CMS 的前台输出通常会经过三层缓存,哪一层没清都会表现为「更新不刷新」。

第一层是数据和模板缓存,由 CMS 自己写入缓存目录,后台点「清空缓存」即可解决。第二层是静态页,站点一旦开启 HTML 静态化,前台访问的是已经生成好的 .html 文件,你改数据库里的内容它当然不会变。第三层是浏览器和 CDN,属于本站之外的缓存。

判断方法很简单:看前台当前访问的 URL 是 .php 还是 .html 结尾。是 .html 结尾,问题基本就在静态化;是 .php 结尾还不变,那就是数据缓存或 CDN。

海洋CMS清缓存的具体步骤是什么?

结论:先用后台自带的清缓存入口,它没效果再去文件系统手动删。

  1. 登录后台,进「系统」相关菜单,找「清空缓存 / 更新缓存 / 缓存管理」这类入口(不同版本菜单名不完全一样),执行一次。
  2. 如果点了没用,用 FTP 或主机文件管理器进入缓存目录,删除目录内的文件,不要删目录本身,否则可能因为权限问题导致 CMS 无法重新创建。
  3. 常见的缓存目录是 /data/cache、/data/runtime、/runtime、/cache 这几类,以你站点根目录下实际存在的为准。如果实在不确定,按「最后修改时间」排序,看最近几分钟被写入的那批 .php、.html 文件,基本就是它。
  4. 删完刷新前台。如果这时内容变了,说明就是缓存层的问题,跟数据库写入无关。

静态化开着,清多少遍缓存都没用

结论:只要站点开启了 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 节点没刷新。

版权声明:本文来自 GJ站长论坛《海洋 CMS 缓存开启后更新内容不刷新怎么办》
原文链接:https://www.gj0.com/thread-884.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~