首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Next.js中启用带回退的静态路由?

如何在Next.js中启用带回退的静态路由?
EN

Stack Overflow用户
提问于 2021-09-11 08:41:07
回答 1查看 278关注 0票数 0

我知道启用带回退的ISR需要在页面中导出getStaticPaths

代码语言:javascript
复制
export const getStaticPaths = () => {
  return {
    paths: []
  , fallback: 'blocking'
  }
}

但是,getStaticPaths仅适用于动态路由,如[slug].jsx

我想要像index.jsx一样为静态路由启用ISR,这是不可能的吗?

附加信息:我不能在构建时预先生成页面。

EN

回答 1

Stack Overflow用户

发布于 2021-09-11 10:42:52

getStaticPaths中,fallback key用于控制如何处理动态路由的新路径(不是在构建时生成)。它既可以返回404页面(fallback: false),也可以允许Next.js生成新页面(fallback: blockingfallback: true)。

由于您的index.jsx不是动态路由,因此这不适用,并且不需要回退,因为该页面总是在构建时预先生成的。

另一方面,Incremental Static Regeneration允许您重新生成现有页面。它是通过getStaticProps中的revalidate属性启用的,可以在动态和非动态路由中使用。

代码语言:javascript
复制
// index.jsx

export async function getStaticProps() {

    return {
        props: {
            //...
        }
        revalidate: 10 // Enables page regeneration
    }
}

当向index.jsx发出请求时,它将首先显示缓存的、预先生成的页面。

从文档中:

在最初的请求之后和10秒之前对页面的任何请求都会被缓存,并在10秒的窗口中显示产品,下一次请求仍然会显示缓存的(陈旧的) page.

  • Next.js触发在background.

  • Once中重新生成页面,如果页面已经成功生成,
  • 将使缓存失效并显示更新后的产品页面。如果后台重新生成失败,旧页面将保持不变。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69141392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档