我正在尝试在数字海洋上测试我的 nextjs 应用程序,我部署了它,并注意到 getStaticProps 重新验证不起作用,我检查了缓存标头并注意到重新验证参数被分配给 Cache-Control,如下所示:
Cache-Control: s-maxage=10800, stale-while-revalidate
这就是我的目的,告诉 nextjs 每 3 小时重新生成页面以更新数据。但问题是,nextjs 和 cloudflare 不同步。所以现在的状态是:
Cf-Cache-Status: HIT
X-Nextjs-Cache: STALE
这意味着对于 nextjs 来说,页面已过期,但对于 CF 来说则不然,因此虽然 nextjs 可能会在后台重新生成页面,但在 cloudflare 缓存也过期之前,它不会显示新页面。
有办法修复它并同步它们吗?目前该应用程序没有域,因此全部由 digitalocean 管理,但我不确定这是 digitalocean 问题还是下一个 ~ cloudflare 问题,我可以通过两侧的配置来修复。
NextJS 不支持边缘运行时的静态重新生成,因此
next-on-pages
也不支持,您可能需要检查此文档:https://github.com/cloudflare/next-on-pages/blob/main/packages/next- on-pages/docs/supported.md#rendering-and-data-fetching
如果您使用的是
getServerSideProps
路由器,修复方法是更改为
pages