NextJS 13应用程序目录| meta标记未包含在生成的静态html中,爬虫找不到opengraph

tjjdgumg  于 2023-04-05  发布在  其他
关注(0)|答案(1)|浏览(103)

我在nextjs 13.2.4中遇到了一个 meta标签的问题。我在https://beta.nextjs.org/docs/api-reference/metadata中查看了官方文档。无论我使用export const metadata = { ... }还是export async function generateMetadata,meta标签都没有包含在静态html代码中。相反,它包含在self.__next_f.push(中,而self.__next_f.push(是opengraph爬虫找不到的。我尝试将export metadata语句放在布局中。tsx,页面。tsx,似乎没有任何工作。
例如,facebook sharing debugger不会显示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 meta数据标签在<script>(self.__next_f=self.__next_f||[]).push([0]) ...
有人有主意吗?

hzbexzde

hzbexzde1#

好了,经过3天的故障排除...问题是,我的layout.tsx使用了一个客户端组件,该组件使用了钩子useSearchParams。这个钩子显然完全破坏了静态渲染,所以 meta标签不是在index.html中静态生成的。
只要去掉钩子useSearchParams就可以了

相关问题