<?php $icon = '/' . $lang . '/img/favicon.ico'; ?>
<link rel="icon" href="<?php echo $icon; ?>">

en 站点和 zh 站点用的是不同图标,切到 /en/ 后标签页图标没变,head 里那条 link 的 href 还指着 zh 的路径。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,图标写在公共模板里,路径被硬编码成主站文件,多语言目录下没有各自的资源。切换语言只换了正文,head 部分没有重渲染。

「多语言图标」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

处理上按这个顺序:把图标路径抽成按语言前缀拼接的变量;每个语言目录下放各自的图标文件;head 模板统一读这个变量 不要写死;切换语言后看 Network 里请求的是不是对应语言那份。

改完只确认一件事:切到英文站标签页图标跟着变 两个语言各用自己的图标。

作者 9823189