我正在尝试为一个Next.js静态网站添加favicon,但没有太大的成功。
我已经尝试使用来自'next/document'
组件自定义文档。
https://nextjs.org/docs/#custom-document
直接链接到favicon.ico文件无法正常工作,因为该文件未包含在构建中,并且href不会更新为/_next/static/...
导入图像并将其添加到链接的href也无效(请参见已注释掉的行)。
import React from 'react';
import Document, { Html, Head, Main, NextScript } from 'next/document';
// import favicon from '../data/imageExports';
export default class MyDocument extends Document {
static async getInitialProps(ctx) {
const initialProps = await Document.getInitialProps(ctx);
return { ...initialProps };
}
render() {
return (
<Html>
<Head>
{/* <link rel="shortcut icon" href={favicon} /> */}
<link rel="shortcut icon" href="../images/icons/favicon.ico" />
</Head>
<body>
<Main />
<NextScript />
</body>
</Html>
);
}
}
网站图标的链接已经添加,但是没有显示。我本来期望引入文件后它可以正常工作,但实际上只是添加了一个<link rel="shortcut icon" href="[object Object]">
的链接。
有人已经解决过这个问题了吗?
/public
文件夹而不是/static
。具体信息可以参考此链接:https://github.com/zeit/next.js/blob/master/errors/static-dir-deprecated.md - Gonzalo.-<link rel="shortcut icon" href="../static/favicon.ico" />
。 P.S:我正在使用版本早于9.0.6
,这就是为什么我仍然使用static
公共目录的原因。感谢@AdvaitJunnarkar! - Elharonyfavicon.ico
在public文件夹中,并且我像这样定义它<link rel='shortcut icon' href='/favicon.ico' />
,但链接在浏览器中保持没有我的basePath,就像这样:<link rel="shortcut icon" href="/favicon.ico">
。 - R. Boutte