【发布时间】:2022-11-14 08:19:21
【问题描述】:
我的 nextjs 应用程序(使用 react v18)的 _app.tsx 和 _document.tsx 页面中都有 head 标签。
我无法使用保存在这些 Head 标记中的标题或网站图标更新浏览器选项卡。
在 app.tsx 我有:
<>
<Head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/>
<link rel="manifest" href="/site.webmanifest"></link>
</Head>
<ChakraProvider theme={theme}>
<ApolloProvider client={apolloClient}>{getLayout(<Component {...pageProps} />)}</ApolloProvider>
</ChakraProvider>
</>
在 _document.tsx 我有:
<Html lang="en">
<Head>
<meta name="theme-color" key="theme-color" content="#000000" />
<meta name="description" content="this is my description" key="description" />
<meta property="og:title" content="i expect to see this in the browser tab" key="title" />
<meta property="og:description" content="can't get these tags to populate" key="og:description" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" />
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;700&family=Poppins:wght@300;400;600&family=Kristi&display=swap" rel="stylesheet" />
</Head>
我该怎么做才能强制 nextjs 读取我的头部标签?
我尝试将所有这些添加到 _document.tsx 文件中:
<link rel="apple-touch-icon" sizes="180x180" href="/public/apple-touch-icon.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="icon" href="/favicon.ico" />
我将文件命名为每个保存在公用文件夹中。
【问题讨论】:
-
您在浏览器的选项卡中看到什么标题?您是否尝试过从
_document中删除元标记并将它们移至_app? -
我看到 localhost 3000/[后跟页面路径]
-
如果我将 head 标签添加到布局组件,我可以使标题出现在浏览器选项卡中,但这对 favicon 没有帮助,我不想在每个布局上都这样做 - 我只想要他相同的 favicon和每一页的标题
-
除了其他图标链接之外,还尝试添加
<link rel="shortcut icon" href="/favicon.ico" />(确保favicon.ico存在于您的public文件夹中)。 -
您的建议与我一直在尝试的不同之处在于“rel”属性中包含“快捷方式”一词。我尝试添加该词,但仍然遇到同样的问题 - 详细信息未填充在浏览器选项卡中
标签: reactjs next.js http-headers