4

首先,我不是 docker 部署方面的专家。

我遇到的问题是重新验证功能突然停止工作,只有在我重新启动 docker 容器时才能再次工作。例如。其中一种产品的库存没有变化。

使用 nextjs v.10 构建的 webapp 它是 e-com webapp,数据来自其他 webapp,它是主要仅用作数据的 wordpress。

简而言之,nextjs 作为前端部署在 vultr vps 上的 docker 容器上,而 wordpress 作为后端。重新验证功能工作大约 1 个月,我需要重现或重新启动 docker 容器以使重新验证功能再次工作。

我不确定这个问题是否与 nextjs 或 vultr 或 docker 有关。有人可以提出解决方案或任何建议吗?如果有人可以帮助我,我真的很感激。谢谢。

4

2 回答 2

0

静态再生(getStaticProps 的重新验证标志)需要运行 NextJs 服务器。正如您在您的案例中所说,它已经配置并运行了一个月。所以我认为它是由你的 nextjs 服务器中的一些错误引起的,它停止运行。请检查 nextjs 服务器日志。

于 2021-06-29T02:29:13.580 回答
0

一些代码会很有帮助,如果有任何东西,也会记录下来。

您可以通过将日志记录添加到getStaticProps. 如果出现日志消息,则无效工作并被触发,但稍后可能会在实际更新缓存之前失败。

另请注意,在重新失效超时后,第一个页面请求将是旧页面请求,因此您需要刷新页面两次才能看到更新的信息。此外,如果getStaticProps失败,将使用旧的缓存页面。

当对在构建时预渲染的页面发出请求时,它将最初显示缓存的页面。

在初始请求之后和 10 秒之前对页面的任何请求也会被缓存并且是瞬时的。

在 10 秒窗口之后,下一个请求仍将显示缓存(陈旧)页面

Next.js 在后台触发页面的重新生成。

成功生成页面后,Next.js 将使缓存失效并显示更新的产品页面。如果后台重新生成失败,旧页面保持不变。

资料来源:https ://nextjs.org/docs/basic-features/data-fetching#incremental-static-regeneration

于 2021-06-29T10:27:09.977 回答