我目前使用getStaticProps
和getStaticPaths
来构建静态HTML
文件,但问题是每次构建时都会构建大约10k+的页面.我不知道如何保存getServerSideProps's
构建的页面,根据文档,它说它在请求的时候构建它,这是我想要的,但它没有提到保存它的任何东西,比如getStaticProps
.
我目前使用getStaticProps
和getStaticPaths
来构建静态HTML
文件,但问题是每次构建时都会构建大约10k+的页面.我不知道如何保存getServerSideProps's
构建的页面,根据文档,它说它在请求的时候构建它,这是我想要的,但它没有提到保存它的任何东西,比如getStaticProps
.
您不能将getStaticProps
个又称为SSR的页面"转换"为静态页面,但是您可以通过缓存构建页面所需的API请求来达到几乎相同的效果/速度.
如果你在Vercel上托管,你可以这样做:
res.setHeader("Cache-Control", "s-maxage=60, stale-while-revalidate=59")
从文档中:
这告诉我们的CDN价值在一秒钟内是 fresh 的.如果在下一秒内重复请求,则先前缓存的值仍然是最新的.响应中出现的报头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: {
}
};
}