我已经构建了一个使用动态路由的 Next.js 应用程序,并且我注意到<Link>
预取的一些奇怪行为。
偶尔(通常在重建后但并非总是如此)我的应用程序开始为给定页面上的所有预取返回 404。如果我点击一个链接,下一页会加载,但再次,该页面上的所有预取都从 404 开始。刷新页面几次后,这个问题就会消失,但这并不总是一致的。
中断似乎只发生在我的动态路线上,每秒使用 getStaticProps 和内容重新验证。下面是我如何构建链接的示例,注意tripname
将是一个动态值。
<Link href={`/trip/${tripname)}`}>
<a>
<Card className={classes.tripCardRoot} />
</a>
</Link>
这就是页面加载时发生的情况。
编辑:
我花了一天时间对此进行深入研究,并提供了一些额外的细节来更好地描述我正在经历的事情。此错误肯定与我构建应用程序的时间有关,并且仅发生在通过我的函数中的fallback:true
属性在构建过程之后生成的页面上。getStaticPaths()
显式构建的页面(例如在路径数组中)似乎没有表现出这个问题。我不确定这是否有意义,但似乎给定页面的前几次加载恢复到以前版本的版本而不是后备页面。只有在重新加载页面几次之后,回退功能才会真正发挥作用,然后将该页面构建为当前构建的一部分。从那时起,一切似乎都按预期工作,直到整个考验开始新的下一个构建。
还包括控制台日志的屏幕截图,指示/_next/data/...
目录中存在问题。虽然我不确定这个错误实际上是指什么。