0

我有一个 NextJS 项目,其中包含许多getStaticProps()revalidate. 正如预期的那样,页面是在构建时生成的,并在指定的时间间隔内重新构建(使用 REST 客户端进行验证)。但是,用户永远无法看到页面的刷新版本,因为浏览器似乎缓存了生成的 html。在生产环境中,NextJS 服务器生成缓存头如下:Cache-Control: s-maxage=60, stale-while-revalidate. 无论我等待或浏览页面多长时间,浏览器都不会请求更新的页面。我只有在手动刷新页面时才能看到新数据——我不能要求我的用户每天都这样做。我还尝试使用位于 NextJS 服务器前面的 nginx覆盖Cache-Control标头,但没有机会。max-age=60, s-maxage=60, stale-while-revalidate=120对于我使用的页面上的链接import Link from "next/link". 对此有什么想法吗?

4

1 回答 1

1

好的,知道了,谢谢提示。ISR 并不意味着那样工作。我让它与 SWR 结合使用: https ://swr.vercel.app/docs/with-nextjs

所以我用 SSG 预渲染页面以获得良好的性能和 SEO。此外,客户端使用 SWR 在显示旧数据时请求新数据。

于 2022-02-09T10:32:46.203 回答