如何在Vercel部署Express.js+EJS应用?部署失败求助
在Vercel部署Express+EJS应用的故障排查方案
1. 修正vercel.json配置
Vercel部署Node.js应用依赖无服务器函数规则,确保你的vercel.json配置正确:
{ "functions": { "api/**/*.js": { "runtime": "@vercel/node@20" } }, "routes": [ { "src": "/(.*)", "dest": "/api/server.js" } ] }
- 该配置将所有请求转发到
api/server.js(你的Express入口文件),同时指定Node运行时版本,避免版本兼容问题。
2. 调整Express入口文件的视图路径
把Express主文件移到项目根目录下的api文件夹(若未放置),并在文件内正确配置EJS视图路径:
const express = require('express'); const path = require('path'); const app = express(); // 启用EJS视图引擎 app.set('view engine', 'ejs'); // 基于当前文件位置定位到views文件夹,适配部署环境的路径差异 app.set('views', path.join(__dirname, '../views')); // 测试路由 app.get('/', (req, res) => { res.render('index'); }); // 导出服务器实例供Vercel调用 module.exports = app;
3. 确认依赖与本地测试
- 执行
npm install ejs express安装依赖,确保package.json和锁文件(package-lock.json/yarn.lock)已提交到代码仓库。 - 本地运行
npm start测试,确认http://localhost:3000能正常渲染views/index.ejs,排除代码本身的问题。
4. 排查Vercel部署日志
若部署仍失败,查看Vercel部署详情页的日志定位问题:
- 若提示
Cannot find module 'ejs':检查是否漏提交依赖锁文件,或package.json内的依赖声明是否正确。 - 若提示
Failed to lookup view "index" in views directory:确认视图路径配置无误,且views文件夹和index.ejs已提交到仓库。
内容的提问来源于stack exchange,提问作者Sujeet kumar
相关产品推荐
相关产品推荐

