【发布时间】:2020-09-25 03:56:23
【问题描述】:
我们使用 Next.js 构建了一个简单的博客,并注意到我们在 CMS(无头 wordpress)上所做的任何更改都没有反映在动态页面上。例如,我们更新了所有作者姓名,尽管更改正确显示在博客登录页面上,但动态页面并未反映此更改(我尝试了不同的浏览器和隐身窗口)。我知道 next.js 在部署时会构建这些页面,但如果这意味着我们每次对后端的内容进行少量更新时都必须重新部署。
【问题讨论】:
标签: next.js
我们使用 Next.js 构建了一个简单的博客,并注意到我们在 CMS(无头 wordpress)上所做的任何更改都没有反映在动态页面上。例如,我们更新了所有作者姓名,尽管更改正确显示在博客登录页面上,但动态页面并未反映此更改(我尝试了不同的浏览器和隐身窗口)。我知道 next.js 在部署时会构建这些页面,但如果这意味着我们每次对后端的内容进行少量更新时都必须重新部署。
【问题讨论】:
标签: next.js
您的静态页面是在构建时获取的。但是 Next.js 确实可以选择动态刷新它们。
尝试getStaticProps (https://nextjs.org/docs/basic-features/data-fetching#getstaticprops-static-generation) 中的revalidate 选项
export async function getStaticProps() {
const res = await fetch('https://.../posts')
const posts = await res.json()
return {
props: {
posts,
},
// Next.js will attempt to re-generate the page:
// - When a request comes in
// - At most once every second
revalidate: 1, // In seconds
}
}
他们说这是 ISR 方法 (https://nextjs.org/docs/basic-features/data-fetching#incremental-static-regeneration)
【讨论】: