![](/img/trans.png)
[英]How to statically render dynamic pages using next.js, such that the dynamic pages data is not available during build time?
[英]Next.js: How to build pages at request time and save it?
我目前正在使用getStaticProps
和getStaticPaths
构建 static HTML
文件,但问题是每次构建它都会构建大约 10k+ 页。 我不知道如何保存getServerSideProps's
构建页面,根据文档,它说它是在请求时构建它,这是我想要的,但它没有提到像getStaticProps
那样保存它的任何内容。
您不能将getStaticProps
又名 SSR 页面“转”为 static 页面,但您可以通过缓存构建页面所需的 API 请求来实现几乎相同的效果/速度。
如果您在 Vercel 上托管,则可以执行以下操作:
res.setHeader("Cache-Control", "s-maxage=60, stale-while-revalidate=59")
从文档:
这告诉我们的 CDN 值是新鲜的一秒钟。 如果在下一秒内重复请求,则先前缓存的值仍然是新鲜的。 响应中存在的 header x-vercel-cache 将显示值 HIT。 如果请求在 1 到 60 秒后重复,则缓存的值将是陈旧的,但仍会呈现。 在后台,将发出重新验证请求以使用新值填充缓存。 x-vercel-cache 将具有值 STALE 直到刷新缓存。
如果您的内容从未更改,您可以删除stale-while-revalidate
并将 s-max-age 设置得非常高,以便响应保持缓存直到您下一次重新部署:
export async function getServerSideProps({ res }) {
res.setHeader('Cache-Control', 's-max-age=10000000000')
return {
props: {
}
};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.