新添加的博客页面未反映在托管的NextJS项目中

nnt7mjpx  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(78)

NextJs用于呈现在sanity.io上添加的博客
只有一篇关于sanity的博客文章,并在Vercel上部署了NextJs,托管的NextJs项目呈现了这篇博客文章,但当向sanity添加新博客时,它不会反映到NextJs -当在本地运行时,我工作
用于部署。使用yarn build命令生成的下一个构建也尝试导出
我试图解决的问题
1.基于时间的缓存重新验证以及按需
1.删除了缓存请求

  1. export const dynamic = 'force-dynamic'
    关注https://www.sanity.io/guides/nextjs-app-router-live-preview
8xiog9wr

8xiog9wr1#

你有没有试过使用getStaticPaths()预渲染博客路径?
https://nextjs.org/docs/pages/building-your-application/data-fetching/get-static-paths
其中 * <cms_url>将是一个路径到你的无头cms,它将返回一个字符串数组,其中包含唯一的slug/标识符到博客。

export async function getStaticPaths() {

  const req = await fetch('<cms_url>');
  const res = await req.json();

  return {
    res.map(path => {
        return {
          params: {
            slug: path
          }
        }
    }),
    fallback: true
  }
}
 
export async function getStaticProps({ params }) {

  const url = `http://..../blog/${params.slug}`;
 
  const res = await fetch(url);
  const data = await res.json()
  return { props: { data } }
}

希望这能有所帮助,我在几个项目上有类似的实现。

相关问题