Я пытаюсь добавить динамический URL-адрес к своим динамическим маршрутам Next.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, находится на картинке.
Проблема в том, что я добавил его на статические страницы, но когда дело доходит до динамических страниц, как мне его добавить?
Потому что я не могу использовать перехватчики для получения пути на страницах, отображаемых на сервере.
Что я могу попробовать дальше?
Вы можете добавить это вверху своей динамической страницы:
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,
}
}
Большое спасибо, я изо всех сил пытался найти точное решение. Я читал документацию, но мне она была не совсем понятна.