安装了缓存插件但网页不刷新?原来问题在这

2025.6.23 杂七杂八 1524

装了缓存插件网站却不更新?我排查了3小时终于找到这个坑

安装了缓存插件但网页不刷新?原来问题在这

上周给客户部署WordPress站点时遇到个诡异问题:明明更新了文章内容,前台却死活不显示变化。作为老司机我第一反应就是缓存问题,但排查过程却比想象中曲折得多。今天就把这次踩坑经历分享给大家,说不定能帮你省下几小时debug时间。

一、经典三件套排查法

遇到页面不更新,我的标准操作流程是这样的:

  1. Ctrl+F5 强制刷新(别笑,真有人忘了这步)
  2. 清空浏览器缓存并禁用所有扩展
  3. 在隐身模式访问页面

结果这次三件套全部失效!这时候我才意识到问题可能出在服务端。

二、插件配置里的隐藏陷阱

站点用的是WP Rocket插件,配置页面我反复检查了这些选项:

// 典型缓存排除规则示例
add_filter( 'rocket_cache_reject_uri', function( $urls ) {
    return array_merge( $urls, [
        '/checkout/', 
        '/my-account/'
    ] );
} );

发现客户竟然在「从不缓存页面」里添加了/*这样的通配符!这相当于让缓存功能完全失效,但诡异的是页面却依然不更新…

三、CDN才是罪魁祸首

当我准备放弃时突然想到:网站接入了Cloudflare!立即做了两个关键操作:

  • 在Cloudflare面板开启「开发模式」
  • 手动清除CDN缓存(在缓存 → 配置 → 清除缓存)

果然页面立刻更新了!原来WP Rocket和Cloudflare的缓存机制产生了冲突:

💡 实战经验: 当同时使用服务器缓存和CDN时,CDN的缓存TTL可能比插件设置更长。建议在CDN端设置短缓存周期,或通过API实现内容更新时自动清除CDN缓存。

四、终极解决方案

最后我采取了组合拳:

  1. 在WP Rocket中设置合理的缓存排除规则
  2. 配置Cloudflare页面规则,对/wp-admin/* 等路径关闭缓存
  3. 安装官方Cloudflare插件实现自动缓存清除

现在每次内容更新后,都能看到控制台出现这样的提示就安心了:

[Cloudflare] Successfully purged 3 files

这次经历让我深刻体会到:缓存问题不能只看表面。下次如果你也遇到类似情况,不妨按照这个排查路线走一遍,说不定会有意外发现呢?

评论

  • 太实用了!我也遇到过这个问题,折腾了好久才发现是CDN缓存的问题

  • 感谢分享,刚好遇到同样的问题,明天去试试这个方法

  • 老哥稳啊,这排查思路很清晰,学到了👍

  • 我一般都是直接清空所有缓存,从浏览器到服务器,简单粗暴😂