能否在Next.js旧pages路由(Next 13前)中使用新Metadata Object?
能否在Next.js Pages路由中使用新的Metadata Object?
结论:不可以。Next.js 13+推出的新Metadata Object(包括
metadata导出、generateMetadata函数等)是专门为App Router设计的特性,Pages Router(即Next 13.*之前的旧路由结构)并不支持该API。Pages Router对应的元数据实现方式:
- 使用
next/head组件:在页面组件中导入并直接渲染<Head>标签,添加title、meta等元素import Head from 'next/head' export default function Home() { return ( <> <Head> <title>首页标题</title> <meta name="description" content="页面描述" /> </Head> {/* 页面内容 */} </> ) } - 在数据获取函数中配置:如果使用
getStaticProps或getServerSideProps,可以返回head字段来动态设置元数据export async function getServerSideProps() { return { props: {}, head: { title: '动态生成的标题', meta: [ { name: 'description', content: '动态生成的描述' } ] } } } - 全局配置:在
_document.js中通过自定义<Html>或<Head>标签设置全局通用的元数据
- 使用
内容的提问来源于stack exchange,提问作者Melvin
相关产品推荐
相关产品推荐

