我正在使用App Router
开发一个Next.js 14
应用程序,我想根据用户的配色方案首选项动态更改favicon(暗模式或亮模式)。目前,我有一个黑色的favicon和一个白色-我如何设置我的Next.js 14应用程序在激活黑暗模式时自动将favicon切换到相应的版本,并在亮模式还是默认模式?
在以前的版本中,这可以使用<Head/>
组件来实现。然而,在Next.js
版本14中,引入了新的Metadata
接口来描述所有的元数据字段。但是,现在我不知道如何实现基于颜色模式的favicon更改。
我的期望:
- 在我的
Next.js
版本14应用程序中,我想根据颜色模式动态更改favicon
。 - 我希望我可以根据用户的配色方案偏好(深色或浅色模式),以编程方式/自动地在黑色和白色
favicon
版本之间切换。
1条答案
按热度按时间ua4mk5z41#
由于没有直接的答案,当我发布的问题,我在互联网上搜索,并没有找到任何解决方案。所以,我已经阅读了官方文档的图标,我找到了解决方案自己。虽然没有直接的解决方案,在文档中,但得到了提示,它解决了我的问题。
我分享代码,因为如果有人遇到同样的问题,在未来它会帮助他们,
字符串
我必须删除
app/icon.png
或任何默认Mapfavicon的文件,以便激活Metadata
界面的icon
。而且,我的favicon or icon images
存储在public/images/icon-light.png
和public/images/icon-dark.png
中。而且,现在它基于颜色模式动态工作。快速流程:
app/
目录中删除任何favicon
或icon
图像。favicon or icon images
存储到public/images/
目录。app/Layout.tsx
metadata.icons.icon
中,将url
和href
路径添加到存储的images
相对路径。