safari 浏览器因强缓存机制,常导致根域名(如 `https://example.com/`)无法加载新配置的 favicon,而子页面却正常显示;该问题通常与本地缓存有关,而非 html 标签写法错误。
在实际部署中,许多开发者会遇到这样一种“诡异”现象:为网站添加了标准 标签后,favicon 能在 /about、/products 等内部路径页正常显示,但在首页(即根路径 https://client.pugpie.com/)的 Safari 标签页中却始终显示默认图标或空白。值得注意的是,Chrome、Firefox 等浏览器往往无此问题——这正是 Safari 特有缓存策略的典型表现。
根本原因:Safari 对根域名 favicon 的强缓存机制
Safari 会独立且长期缓存根域名(/)下的 favicon 请求,甚至忽略 标签中的 href 变更或 HTTP 响应头(如 Cache-Control)。这种缓存不依赖于页面 HTML 是否更新,而是基于历史请求的 URL 和响应指纹。因此,即使你已正确部署新图标并更新了 HTML,Safari 仍可能从本地磁盘加载旧版本(甚至一个早已不存在的 32×32 ICO 文件)。
✅ 正确解决方案(实测有效)
-
强制清除 Safari favicon 缓存(最直接):