阅读提示
本文约 583 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
本文约 583 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:切英文还是显示中文缓存
页面缓存把首屏 HTML 存成静态,多语言站若不分语言缓存,用户切英文却拿到中文缓存页。核心是”缓存键含语言维度”。
原理分析:冲突来源
缓存插件默认按 URL 缓存,而多语言常用”同 URL + 语言 Cookie/session”或”不同 URL”。前者必须让缓存键含语言标识;后者(子目录/子域名)URL 已区分,冲突少。动态部分(切换器、当前语言块)需排除或按语言。
保姆级实操
WP Rocket:对 WPML/Polylang 自动”按语言缓存”(不同 URL 模式天然分)。若用 Cookie 模式,确保缓存变体含语言:
// WP Rocket 按 Cookie 分变体(示意)
// 在缓存插件设置里把语言 Cookie 加入"缓存变体"
排除语言切换器(若在页脚动态)。清缓存后切语言测。
常见坑
- 缓存不分语言,串语言。
- 切换器被缓存,显示错。
- 案例:某站 Cookie 模式多语言,WP Rocket 没分变体,英文用户看中文缓存。加语言变体后正常。
- 清缓存不彻底,旧页残留。
- 对象缓存串语言,需按语言键。
总结
判断标准:缓存键含语言维度、动态切换器排除。行动清单:确认 URL/ Cookie 模式 → 开按语言缓存 → 排切换器 → 清缓存测。详见多语言站点与 CDN 缓存的适配。
觉得有用?点个赞支持一下
