nextJS api 路由不适用于 Firebase 托管

nextJS api routes not working with Firebase Hosting

我在将我的网站部署到 Firebase 托管时遇到使用 Next.js API 路由的问题。这是 api 调用:

这是页面目录中的设置: 这是 email.js 中使用的函数: 我更改了变量,以免泄露我的电子邮件地址。

当我使用本地主机时调用有效。但是,当我构建并部署到 firebase 时。我尝试使用 firebase url 进行 api 调用,但我收到 404 页面未找到。我不确定如何解决这个问题。如果有任何帮助,我将不胜感激。

Firebase 托管仅托管静态文件,这就是您的 api 路由在那里不起作用的原因。如果您有一个完全静态的 Next 站点,您可以将其托管在 Firebase 托管上。但是如果你想在 Next 中使用 api 路由,你需要一个服务器。一种方法(尽管很复杂)是使用 api 代码设置 Firebase 函数,然后将 Firebase 托管中的请求重写为该 Firebase 函数。这很复杂,因为它需要相当复杂的部署过程。

如果您网站的其余部分是静态的,您可以为此使用 Firebase 托管,然后考虑放弃 api 路由,而是设置一个 Firebase 函数作为您的 api 完全独立来自下一个

或者,如果您想将所有内容都保留在 Next 中,请考虑为您的站点添加 Vercel 之类的东西 + api 通过 Next。