我使用next.js建立了一个网站 该指南说next.js有两种形式的预渲染:
静态生成(推荐):HTML是在构建时生成的,并将在每个请求上重用。 服务器端渲染:在每个请求上生成HTML。
如果我使用的是Static Generation,请在我的页面中说以下代码:
export async function getStaticProps({ params }) {
const fetchedData = await axios.get(API_URL);
return {
props: {
fetchedData
}
}
}
这是否意味着此功能仅在构建时(当我部署网站时)执行一次,然后意味着将在网站上显示的数据从部署之日起就是旧数据? 如果是这样,我如何才能强制next.js每天重建此页面?
答案 0 :(得分:2)
好,答案是肯定的,将要显示的数据是在构建时间(例如,部署时间)上获取的数据,因此,基本上,如果API上的数据发生更改,则该站点仍然具有旧数据。 / p>
关于第二个问题-如何强制每隔一段时间重新构建next.js-我找到了一个适合我的解决方案(因为我使用的是Vercel托管):
https://vercel.com/docs/v2/more/deploy-hooks?query=Deploy%20Hooks#
答案 1 :(得分:1)
我刚刚开始使用next.js。我正在使用Firebase托管。 可以在请求时调用getStaticProps。