重定向
处理来自重定向模块的重定向。
本指南使用 translatedPathFromContext
,它在 next-drupal ^1.1.0
中可用。
Next.js
要在 Next.js 中使用重定向,您可以在 next.config.js
中配置 redirects
键。
next.config.js
module.exports = { async redirects() { return [ { source: "/about", destination: "/", permanent: true, }, ] },}
重定向模块
要处理来自 Drupal (重定向模块) 的重定向,您可以使用 translatedPathFromContext
。
以下是如何在 getStaticProps
中处理重定向。
pages/[...slug].tsx
import { DrupalNode } from "next-drupal"
export async function getStaticProps( context): Promise<GetStaticPropsResult<NodePageProps>> { // Get information about the path. const path = await drupal.translatePathFromContext(context)
if (!path) { return { notFound: true, } }
// Check for redirect. if (path.redirect?.length) { const [redirect] = path.redirect return { redirect: { destination: redirect.to, permanent: redirect.status === "301", }, } }
// No redirect. Fetch the resource for this type. const resource = await drupal.getResourceFromContext<DrupalNode>( path, context )}
使用 fallback: "blocking"
在 getStaticPaths
中,这将缓存和处理在 Drupal 中配置的重定向,并且仍然可以使用增量静态再生。