在Vercel部署AdonisJS全栈应用时持续出现404错误求助
解决AdonisJS全栈应用部署Vercel的404错误
尝试将AdonisJS全栈应用部署到Vercel时,始终收到404错误提示:
已尝试的操作:
- 修改构建脚本为
node ace --production && cp .env build/.env - 将包管理工具从Yarn切换为npm
- 添加了
vercel.json配置文件,内容如下:
{ "version": 2, "buildCommand": "node ace build --production", "devCommand": "npm run dev", "installCommand": "npm install", "outputDirectory": "build", "public": true, "env" : { "PORT":"3333", "HOST":"127.0.0.1", "EMAIL_SENDER_NAME":"", "montravaux_BASE_URL":"http://localhost:3333", "NODE_ENV":"testing", "APP_KEY":"", "DRIVE_DISK":"local", "SESSION_DRIVER":"cookie", "HASH_DRIVER":"bcrypt", "CACHE_VIEWS":"", "DB_CONNECTION":"", "PG_HOST":"d", "PG_PORT":"", "PG_USER":"", "PG_PASSWORD":"", "PG_DB_NAME":"" }, "routes": [ { "src": "/(.*)", "dest": "/start/route.js" } ] }
核心修复方案
- 修正路由转发配置
Vercel的routes配置中dest指向错误,AdonisJS构建后的入口文件是build/server.js,需修改路由规则:
"routes": [ { "src": "/(.*)", "dest": "/server.js" } ]
- 调整环境变量
- 将
NODE_ENV改为production,匹配Vercel生产环境模式 montravaux_BASE_URL替换为Vercel分配的实际域名,而非本地地址- 敏感变量(如
APP_KEY、数据库信息)不要明文写在vercel.json中,通过Vercel控制台的环境变量面板配置
- 优化构建逻辑
确保构建产物完整,可调整buildCommand为:
node ace build --production && cp .env build/.env
(注:若.env包含生产环境专属配置才需复制,否则建议完全通过Vercel环境变量注入)
- 本地验证构建产物
部署前本地执行node ace build --production,检查build目录下是否生成server.js及完整的应用文件结构,确认依赖安装正常。
内容的提问来源于stack exchange,提问作者SOULEYMANE TOURE
相关产品推荐
相关产品推荐

