我知道启用带回退的ISR需要在页面中导出getStaticPaths:
export const getStaticPaths = () => {
return {
paths: []
, fallback: 'blocking'
}
}但是,getStaticPaths仅适用于动态路由,如[slug].jsx。
我想要像index.jsx一样为静态路由启用ISR,这是不可能的吗?
附加信息:我不能在构建时预先生成页面。
发布于 2021-09-11 10:42:52
在getStaticPaths中,fallback key用于控制如何处理动态路由的新路径(不是在构建时生成)。它既可以返回404页面(fallback: false),也可以允许Next.js生成新页面(fallback: blocking或fallback: true)。
由于您的index.jsx不是动态路由,因此这不适用,并且不需要回退,因为该页面总是在构建时预先生成的。
另一方面,Incremental Static Regeneration允许您重新生成现有页面。它是通过getStaticProps中的revalidate属性启用的,可以在动态和非动态路由中使用。
// index.jsx
export async function getStaticProps() {
return {
props: {
//...
}
revalidate: 10 // Enables page regeneration
}
}当向index.jsx发出请求时,它将首先显示缓存的、预先生成的页面。
从文档中:
在最初的请求之后和10秒之前对页面的任何请求都会被缓存,并在10秒的窗口中显示产品,下一次请求仍然会显示缓存的(陈旧的) page.
https://stackoverflow.com/questions/69141392
复制相似问题