我面临着nextjs 13.2.4的元标签问题。我在https://beta.nextjs.org/docs/api-reference/metadata.无论我使用export const metadata = { ... }
还是export async function generateMetadata
,元标记都不会包含在静态html代码中。相反,它包含在self.__next_f.push(
中,而opengraph爬网程序找不到它。我试着把export metadata
语句放在布局.tsx、页面.tsx中,似乎什么都不起作用。
例如,facebook共享调试器不会显示opengraph预览。它显示的html如下所示:
<!DOCTYPE html>
<html id="__next_error__">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js" nomodule=""></script>
</head>
...
og元数据标签在<script>(self.__next_f=self.__next_f||[]).push([0]) ...
中
有人有主意吗?
经过3天的故障排除,一切正常。。。问题是,我的layout.tsx使用了一个客户端组件,该组件使用了钩子useSearchParams
。这个钩子显然完全破坏了静态呈现,所以元标签不是在index.html中静态生成的
只是卸下钩子useSearchParams
就完成了的任务