Vercel部署出现404: NOT_FOUND错误

6
我使用chakra-UI和three.js构建了一个web3应用程序。我在网站上添加了metamask集成,这有助于在智能合约上铸造NFT。
当我这样做时,
npm run dev

在我的电脑上,我的代码运行非常顺畅。我在我的localhost:3000上没有看到任何错误,但是当我使用vercel部署网站时,我一遍又一遍地收到这个错误,它说Code NOT_FOUND。以下是该错误的截图:

Error Image

我通过我的VSCode终端部署了网站

vercel

命令。

我选择了执行此命令后出现的所有默认设置。

单击此处了解有关此错误的更多信息也没有帮助。

我还尝试通过在 Vercel 网站上物理导入 GitHub 存储库来部署它,但这也没有起作用。

错误页面 URL 是:- https://minting-website-frontend.vercel.app/

请问有人可以帮我克服这个错误吗?我已经卡在这里很久了。


2
请在项目设置中的“构建和开发设置”下检查“框架预设”,以确保它与您本地使用的框架(Next.js)相匹配。 - Juan Marco
@JuanMarco 是的,我在我的框架预置中添加了Next.js并重新部署了网站。但问题仍然没有任何进展。它仍然显示错误404。 - Hemang Joshi
4个回答

16

我曾经遇到过这个问题,解决方法如下:

  1. 在我的项目中创建一个vercel.json文件。
  2. 在vercel.json文件中输入以下代码。
{
    "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}

重新部署该项目。

1
请解释一下这个。 - nwparker
我花了几个小时来解决这个问题,谢谢伙计! - Ezequiel Guitler
我在这里找到了信息,但不确定它实际上如何解决404问题:https://vercel.com/docs/concepts/edge-network/rewrites - Téwa
有人知道为什么单斜杠可以工作,而双斜杠不行吗?我的意思是"website/account"可以,但是"website/account/profile"却显示404错误页面? - undefined

2

你确定你正在查看正确的URL吗?

你需要运行vercel --prod来部署到生产环境,否则你只是在部署预览版本。

你能分享一下终端中vercel命令的输出吗?


好的,很明显在代码中存在一些问题。首先,在 package.json 中有一个拼写错误,对于 build:next-build 我不知道怎么会有拼写错误,哈哈(当我们创建 next 应用程序时它是默认的)。所以这可能就是没有显示任何内容的原因。在解决了这个问题后,我运行了 npm run build 命令,它显示了一些警告,例如缺少 passHref、未使用的导入和一个小写字母初始化的 const 组件(例如我写的是 "home" 而不是 "Home")。然后我运行了 vercel 并选择了“Next.js”,正常工作了! - Hemang Joshi

1

前往 Vercel 项目设置 -> 常规 -> 构建与开发设置, 选择你的项目所使用的框架, 在我的情况下,我的项目使用的是 Next.js,但被选择为“其他”。 所以当我将它从其他更改为 Next.js 时,问题就解决了。


0

我也遇到了同样的问题,但是我的项目是使用Svelte(而不是SvelteKit)构建的。

对我有用的方法是:

在Vercel仪表板中打开该项目。进入项目设置。在构建和开发设置部分,将框架预设更改为其他

我知道也有Svelte选项,但对我没有用。我是后端开发人员,对前端还很陌生,但这是我的解决方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接