Next.js - production/Vercel.com 上的增量静态再生失败 (404)

时间:2021-05-14 10:36:33

标签: next.js vercel

我使用 Next.js + Wordpress/Graphql 作为无头 CMS 并部署到 Vercel。

在生产 (vercel) 上创建新帖子时,我收到 404 - 不是在本地发生,也不是在使用 next build 时发生。奇怪的是,当我重新部署或将新版本推送到 repo 并且 vercel 重新构建时,它解决了问题。

我猜这与Incremental Static Regeneration有关吗?​​

我在以前的 Wordpress 服务器上遇到了类似但略有不同的问题,该服务器响应 429 Too Many Requests。 但是当所有页面都生成时,这是第一次构建的问题,因此发出了更多请求。我已切换到另一台似乎可以解决问题的服务器,现在问题仅在第一次构建后出现(即根据请求逐步重新生成页面时)。

这是问题页面之一: https://github.com/garethfoote/blind-ditch/blob/master/pages/projects/%5Bslug%5D.js

认为这可能是罪魁祸首,但我没有从 console.re 中获得任何远程日志:

  if (!router.isFallback && !project?.slug) {
    console.re.log("404??", project);
    return <ErrorPage statusCode={404} />;
  }

我正在努力找出导致此问题的原因,以及如何在 Vercel 上进一步调试此问题。感谢您的建议。

1 个答案:

答案 0 :(得分:0)

经过一番探索之后,我意识到我还没有完全理解 fallbackgetStaticPaths 键的用法。

我认为 ISR 会在构建时生成未在 pathsgetStaticPaths 对象中指定的新页面,但我知道这就是 fallback: truefallback: "blocking"

https://nextjs.org/docs/basic-features/data-fetching#fallback-true