我的 express 应用程序在本地主机上运行没有任何错误,但是当我将它部署到 heroku 时出现错误:
<块引用>GET / 500 24.258 毫秒 - 148
2021-02-12T03:19:34.225902+00:00 app[web.1]:错误:无法在视图目录“/views”中查找视图“表单”。
答案 0 :(得分:0)
这大致是您的文件夹结构。
node-app
├──views
│ └──err.handlebars
│ └──form.handlebars
│ └──thanks.handlebars
├──main.js
└──package.json
当您在 Heroku 上部署时,它会将 node-app
的内容放在目录 /app
中。
您正在执行 node main.js
。 main.js
位于文件夹 /app
中,因此您的 __dirname
是 /app
。
app.set('views', path.join(__dirname, "../views"));
这会将您的 views
目录设置为:
__dirname + "../views" = "/app" + "../views" = "/views"
因此您收到错误消息:
Failed to lookup view "form" in views directory "/views".
应该是:
app.set('views', path.join(__dirname, "./views"));
会变成:/app/views
。这是您的车把实际所在的位置。