Favicon Tools检测创建
Next.js · Not updating

Next.js favicon 不更新?这样修复

文件变了,标签页没变。在 Next.js 上,那是三种缓存之一:浏览器的 favicon 存储、一个陈旧的 .next 构建,或一个在提供旧字节的 CDN。按这个顺序逐一排除。

先确认文件确实变了

在动缓存之前,直接打开 /favicon.ico。如果旧图片在那里加载出来,说明新文件根本没被提供(构建或放置问题),再怎么强制刷新也没用。先把那个修好。

如果直接 URL 显示的是新图标、标签页却仍是旧的,那就是真正的缓存了。浏览器对 favicon 的缓存比几乎任何其他资源都狠,而且把它和页面分开存储。

按顺序清缓存

  1. 1

    在无痕窗口里强制刷新

    Cmd+Shift+R 或 Ctrl+F5,或者开一个全新的无痕窗口。这会清掉浏览器自己的 favicon 存储,也是最常见的元凶。

  2. 2

    删除 .next 并重新构建

    一个陈旧的构建可能一直在输出旧图标。删掉 .next 目录再重新构建,让 Next 重新读取你的 app 目录文件。

  3. 3

    清除 CDN 或平台缓存

    在 Vercel 或任何 CDN 上,重新部署后边缘节点可能还在提供旧的 /favicon.ico。让那个路径失效,再重新打开直接 URL。

Next.js favicon 不更新:常见问题

为什么我的 Next.js favicon 不更新?

要么是新文件根本没被提供(直接检查 /favicon.ico),要么是某个缓存还留着旧的。浏览器对 favicon 缓存得很凶,而且一个陈旧的 .next 构建或 CDN 也可能在部署后继续输出旧文件。

在 Next.js 里怎么强制更新 favicon?

在 Pages Router 中,给 link 的 href 追加一个版本查询字符串。在 App Router 中你做不到,因为标签是生成的:换文件并重新部署、删除 .next 清掉陈旧构建、并清除 CDN。

它在本地更新了,在 Vercel 上却没有。

边缘缓存在提供旧的 /favicon.ico。确认这次部署确实包含新文件,再清除或重新部署让边缘重新拉取,并在无痕窗口里检查直接 URL。

Keep going