3

我正在使用 next.js 10 并有一个 [slug] 页面,它从 Contentful CMS 创建动态页面。我正在更改 CMS 中的 slug 并next dev正确运行旧 slug 返回 404 并且新 slug 工作。
但是,当我构建并运行next start旧 slug 时仍然返回一个缓存页面,新 slug 可以正常工作。
我返回 revalidate 10 并假设页面应在 10 秒后刷新

export const getStaticProps: GetStaticProps<SlugRoutePageProps> = async ({
  params,
}) => {
  ....  
  ....
  const pageData = await getPageData(params.slug)
  if (pageData.total === 0) return { notFound: true }

  return {
    props: {
      pageType: "DynamicPage",
      pageProps: {
        pageData,
      },
      revalidate: 10,
    },
  }
}

getStaticPaths我有fallback: "blocking",也试过fallback: true没有区别。

编辑:
getPageData是对内容 API 的基本调用 - 无缓存

   const getPageData = async (
      slug: string,
    ): Promise<FetchPagesResult> => {
      const client = createContentfulClient()
      return client.getEntries<Page>({
        content_type: "page",
        "fields.slug": slug,
        include: 5,
        order: "-sys.updatedAt",
        limit: 1,
      })
    }
4

0 回答 0