You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt4 SSR项目部署Vercel时Serverless Functions失效,仅加载前端

解决Nuxt4部署Vercel后API路由无响应的问题

以下是针对问题的排查和解决步骤:

1. 确认Nitro预设配置正确性

确保nuxt.config.ts中明确指定Vercel serverless预设,避免默认fallback行为:

export default defineNuxtConfig({
  ssr: true,
  nitro: {
    preset: 'vercel',
    vercel: {
      functionType: 'serverless' // 强制生成独立Serverless函数,而非fallback
    }
  }
})

注意不要同时配置其他预设(如node-server),这会导致Nitro生成错误的输出结构。

2. 修正Vercel平台构建配置

  • 构建命令:必须设置为nuxt build --preset vercel,普通nuxt build会默认使用node-server预设,无法生成Vercel Serverless函数。
  • 输出目录:留空或设为.output,Nuxt4的Vercel预设会自动处理.vercel/output目录,无需手动指定。
  • 根目录:确保指向项目根目录,不要设置为子目录,否则Vercel无法识别Nitro生成的函数配置文件。

3. 检查Server API路由规范

  • 确保server/api下的文件符合Nuxt路由规则:比如server/api/user.ts对应/api/user,避免使用特殊命名(如下划线开头的文件仅用于中间件)。
  • 每个API路由必须正确导出defineEventHandler:
export default defineEventHandler((event) => {
  return { data: 'API响应内容' }
})
  • 不要在server目录下放非API/中间件的文件,防止Nitro解析路由时出错。

4. 统一Node版本

Vercel默认Node版本可能与本地v24不一致,导致函数生成异常:

  • 在package.json中添加引擎声明:
"engines": {
  "node": "24.x"
}
  • 在Vercel控制台的项目设置 -> General -> Node.js版本选择24.x,确保环境一致。

5. 清理缓存重新构建

  • 本地删除.nuxt、.output、.vercel目录,重新执行nuxt build --preset vercel后推送代码。
  • 在Vercel构建页面点击Redeploy,并选择Clear build cache,强制重新生成函数文件。

关键说明

Nuxt4完全支持Vercel Serverless部署,无需使用专用Node服务器。出现单个__fallback.func的原因通常是Nitro未识别到需要单独打包的API路由,或预设配置错误导致所有请求 fallback到前端静态资源。

内容的提问来源于stack exchange,提问作者ravesandstorm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 03:07:20