Nextjs v.10 getstaticprops "revalidate"停止在 docker 容器上工作



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

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

使用nextjs v.10构建的网络应用程序是e-com网络应用程序,数据来自其他网络应用程序wordpress,主要用作数据。

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

我真的不确定这个问题是与nextjs、vultr还是docker有关。有人能提出解决方案吗?如果有人能帮我,我真的很感激。谢谢

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

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

您可以通过在getStaticProps的开头添加日志来开始调试。如果出现日志消息,则无效会起作用并被触发,但在实际更新缓存之前,它可能会在稍后失败。

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

当对在构建时预先呈现的页面发出请求时,它最初会显示缓存的页面。

在初始请求之后到10秒之前对页面的任何请求也会被缓存并即时发送。

在10秒窗口之后,下一个请求仍将显示缓存的(过时的(页面

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

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

来源:https://nextjs.org/docs/basic-features/data-fetching#incremental-静态再生

相关内容

  • 没有找到相关文章