所有分类
  • 所有分类
  • 站长推荐
  • WP主题
  • WP插件
  • WP教程
  • WP模板库
  • 前端模板
  • PHP源码
  • 延伸阅读

WP Rocket 多域名缓存跨域踩坑,静态资源地址错误修复

这次问题的背景其实很简单:我用 MU Domain Mapping 给网站 wpzyh.com 绑定了另一个域名 wpzyh.wuaishare.cn,让两个域名都能访问同一站点。为了进一步提升未登录用户的访问速度,我在 WP Rocket 里开了预缓存,也为 A、B 两个域名准备了各自的 wp-content/wp-rocket-config 配置文件。结果却发现,B 域名的缓存页面里夹带了 A 域名的静态资源(wp-content/cache/min/ 下的 CSS/JS/字体),浏览器直接跨域报错,字体图标也就没法显示了。下面我会把原因、排查思路和修复方法讲清楚,方便你复现和解决。

一、问题现象与根因

现象

  • 访问域名 B 时,HTML 缓存内容里出现 https://A域名/wp-content/cache/min/...
  • 浏览器报跨域,字体/图标等资源加载失败

根因(关键点)

WP Rocket 的 minify 资源 URL 是用 WP_CONTENT_URL 拼出来的。WP_CONTENT_URL 默认来自主站点域名,所以即便缓存按 host 分开了,minify 的资源链接仍然可能跑偏。

三、修复方案(推荐顺序)

方案 A:MU 插件强制使用当前访问域名(推荐)

优点:稳定、安全、不会影响主题更新

适用:多域名访问同站点

步骤免费教程 登录后可免费查看

您暂时无权查看此隐藏内容!

方案 B:在 wp-config.php 动态设置缓存 URL

优点:更底层,效果彻底

缺点:需要改核心配置,维护成本略高

适用:服务器能访问 $_SERVER['HTTP_HOST'],并且你希望所有 WP Rocket 缓存资源都自动跟随当前域名。

方案 B 完整写法(可直接粘贴到 wp-config.php)

说明:把这段代码放在 wp-config.php 里,必须在 require_once ABSPATH . 'wp-settings.php'; 之前。
作用:让 WP Rocket 的缓存 URL 根路径跟随当前访问域名,避免 minify 资源被写成主域名。

免费教程 登录后可免费查看

您暂时无权查看此隐藏内容!

方案 C:关闭 JS/CSS 压缩与合并

优点:操作最简单

缺点:性能优化少一些

适合临时排查或不想改代码的用户。

四、验证方式

  • 访问 B 域名页面源代码
  • 检查 /wp-content/cache/min/ 资源是否为 B 域名
  • 控制台跨域错误是否消失

五、常见疑问

1)为什么 WP Rocket 最新版 也没有修复?

目前 WP Rocket 最新版 v3.20.2 的 minify URL 逻辑仍然使用 WP_CONTENT_URL,与 3.19.3 一致,所以问题不会自动消失。

2)MU 插件安全吗?

MU 插件优点是加载优先级高、不会被主题/插件更新覆盖,是我在生产环境里最常用的方案之一。

内容查看本文隐藏内容仅限注册用户查看,请先
1元=10金币|其他付款方式付款后未到账 新版下载框正在测试中,如遇购买或下载问题请反馈!
查看价格
免费
包月VIP免费0金币
包季VIP免费0金币
包年VIP免费0金币
终身VIP免费0金币
1元=10金币|其他付款方式付款后未到账 新版下载框正在测试中,如遇购买或下载问题请反馈!
售后:一年免费更新
声明:1、本站大部分资源均为网络采集所得,仅供用来学习研究,请于下载后的24h内自行删除,正式商用请购买正版。2、所有汉化类文件和个别标注了“原创”的产品均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。3、如若本站内容侵犯了原著者的合法权益,请携带相关版权文件联系我们进行下架或删除。4、虚拟下载类资源具有可复制性,一经下载后本站有权拒绝退款或更换其他商品!
0
分享海报

评论0 注意:评论区不审核也不处理售后问题!如有售后问题请前往用户中心提交工单以详细说明!

请先
显示验证码
没有账号?注册  忘记密码?