代码之家  ›  专栏  ›  技术社区  ›  Shiv Shankar Prasad

如何在Next js 14.2.4中将动态url添加到规范标签中

  •  0
  • Shiv Shankar Prasad  · 技术社区  · 1 年前

    我正在尝试将动态url添加到我的下一个js动态路由中。

    我正在使用服务器呈现的页面来生成元数据

    export const metadata: Metadata = {
       title: `InterviewQA |  ItsIndianGuy`,
       description:
          "Explore interview questions in various programming languages such as JavaScript, Python, C++ and more. Enhance your preparation with comprehensive language-specific content.",
       alternates: {
          canonical: "https://itsindianguy.in/interview-qa",
       },
    };
    

    我想为其添加seo的动态页面在图片中

    Folder structure

    现在的问题是,我已经将它添加到静态页面中,但当涉及到动态页面时,我该如何添加它。

    因为我不能在服务器渲染的页面中使用钩子来获取路径名。

    我被困在这里了。有人能帮我吗?

    1 回复  |  直到 1 年前
        1
  •  1
  •   Besufkad Menji    1 年前

    您可以将其添加到动态页面的顶部:

    import type { Metadata, ResolvingMetadata } from 'next'
    
    type Props = {
       params: { slug: string }
       searchParams: { [key: string]: string | string[] | undefined }
     }
    
     export async function generateMetadata(
      { params, searchParams }: Props,
        parent: ResolvingMetadata
       ): Promise<Metadata> {
      // read route params
       const slug = params.slug
    
     // fetch data or use local json data
     const product = await fetch(`https://.../${slug}`).then((res) => res.json())
    
    
    return {
       title: product.title,
     }
    }