我正在使用Next.js构建一个博客,并使用新的应用程序路由器进行导航。然而,我遇到了一个问题,每个博客页面都显示相同的标题和描述。在调查代码时,我发现标题和描述从layout.js文件导出为Metadata(),这似乎是问题的主要原因。当我尝试在单个博客页面中使用Metadata()时,它并没有像预期的那样工作。是否有一种方法可以解决这个问题,并为每个博客页面设置不同的标题和描述,即使在使用应用程序路由器并包括非SSR页面,如客户端?我将感谢任何关于如何处理这个问题的指导或建议。
6qqygrtg1#
在Next.js 13中,您可以通过从任何layout.js或page.js文件导出Metadata对象来定义静态元数据,但您可能希望为每个页面生成动态元数据(元数据取决于该页面的获取内容)。要执行动态元数据,您需要导出generateMetadata函数你也可能会发现使用像next-seo这样的包更容易,尽管我从Next.js 12开始就没有使用过它,也不知道它是否能在新的应用程序目录下工作。
1条答案
按热度按时间6qqygrtg1#
在Next.js 13中,您可以通过从任何layout.js或page.js文件导出Metadata对象来定义静态元数据,但您可能希望为每个页面生成动态元数据(元数据取决于该页面的获取内容)。要执行动态元数据,您需要导出generateMetadata函数
你也可能会发现使用像next-seo这样的包更容易,尽管我从Next.js 12开始就没有使用过它,也不知道它是否能在新的应用程序目录下工作。