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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:40:21