NextJS 部署到 Vercel:找不到 404 页面

Posted

技术标签:

【中文标题】NextJS 部署到 Vercel:找不到 404 页面【英文标题】:NextJS deployed to Vercel: 404 page not found 【发布时间】:2021-04-22 13:26:47 【问题描述】:

我有一个没有集成 api 的 NextJS 应用程序,我想将其部署到 Vercel。当我在本地 yarn run dev 运行它时它工作正常,我也可以在没有任何错误的情况下构建它 yarn run build。但是,当我部署 Vercel 时,我收到了 404 Error

这是我的文件夹结构:

app/
  - components
  - pages
    - editor
      - [id].tsx
    ...tsx
  - public
  - utils
    - db
      api.ts

我正在使用 NextJs 10.0.3。

这是已部署的app 的链接。

我没有 nextjs 配置文件。我的假设是错误是由动态路由引起的,但我找不到我的错误。此外,与只有动态页面相反,部署应用程序时没有页面工作。

你有关于下一步看哪里的指示吗?

编辑 1:Here 是 GitHub 存储库的链接。

编辑 2: 我发现了一个问题,但不知道如何解决。

这是我的构建输出在 Vercel 上的样子:

这是它在 Vercel 上的样子:

不知道为什么整个 _next 文件夹丢失了。

【问题讨论】:

你能告诉我们你的代码吗? 添加了指向 GitHub 存储库的链接 【参考方案1】:

编辑

尝试使用部署 now --prod --force --force 标志将清除您的构建缓存(在生产中)并强制生产推送。 如果仍然无法正常工作,请确保添加 now.json

【讨论】:

我正在使用 Vercel Github 集成进行部署。我认为每次部署时它都会从头开始构建它。我刚刚将它与我成功部署的其他项目进行了比较,并且我没有提供 now.json。所以我怀疑这是必要的。 @siva 尝试添加 now.json。这里有一点帮助 => docs-git-update-lambda-serverless-function.zeit.now.sh/docs/v2/… @siva 我可以尝试部署您的应用吗? 当然!任何帮助表示赞赏!【参考方案2】:

我刚刚遇到了同样的问题。 我在子目录中有我的下一个应用程序。我认为这可能是一些问题的原因。

对我有用的是。

确保选择正确的子目录。我的上面有一个 Next Js 小图标。 框架预设需要设置为 Next.js。

【讨论】:

为我工作!更新了我在 Vercel 上的项目的“根目录”,它又可以正常工作了。【参考方案3】:

我的问题是我第一次尝试通过一个团队部署 Vercel。当我在我的个人 Vercel 帐户下创建一个新的 Vercel 项目并部署相同的代码时,它工作了!我希望这可以节省其他人的时间,因为我刚刚浪费了 3 个小时试图找到它。我也在使用 Next.js。

如果您尝试通过团队进行部署,您可能需要首先在您的 vercel.json 中配置团队 ID,例如


  "currentTeam": "team_ofwUZockJlL53hINUGCc1ONW"

参考:https://vercel.com/docs/configuration#global/config-json/current-team

【讨论】:

【参考方案4】:

还要确保选择 Next.js 作为框架预设(而不是其他)。您可以在项目设置和构建和开发设置下找到它。 更多内容:https://vercel.com/docs/concepts/deployments/build-step

【讨论】:

以上是关于NextJS 部署到 Vercel:找不到 404 页面的主要内容,如果未能解决你的问题,请参考以下文章

Nextjs api“pages/api”在 vercel 服务器上不起作用

NextJS / vercel - 504 错误'FUNCTION_INVOCATION_TIMEOUT'

在 Vercel 上部署的 Nextjs 中的 api 请求出现 504/502 错误

Tailwind CSS 样式未应用于 Vercel 上已部署的 NextJs 应用程序

NextJS 和 Vercel:网站不呈现/使用 CSS 和 ReactJS

为啥我的自定义 Nextjs 服务器在我的 Vercel 部署中不起作用?