我在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]) ...
中
有人有主意吗?
1条答案
按热度按时间hzbexzde1#
好了,经过3天的故障排除...问题是,我的layout.tsx使用了一个客户端组件,该组件使用了钩子
useSearchParams
。这个钩子显然完全破坏了静态渲染,所以 meta标签不是在index.html中静态生成的。只要去掉钩子
useSearchParams
就可以了