部署到 heroku 后,我的服务器找不到我的车把模板

时间:2021-02-12 03:38:28

标签: node.js express heroku handlebars.js express-handlebars

我的 express 应用程序在本地主机上运行没有任何错误,但是当我将它部署到 heroku 时出现错误:

<块引用>

GET / 500 24.258 毫秒 - 148
2021-02-12T03:19:34.225902+00:00 app[web.1]:错误:无法在视图目录“/views”中查找视图“表单”。

Screenshot of VS Code files

1 个答案:

答案 0 :(得分:0)

这大致是您的文件夹结构。

node-app
  ├──views
  │  └──err.handlebars
  │  └──form.handlebars
  │  └──thanks.handlebars
  ├──main.js
  └──package.json

当您在 Heroku 上部署时,它会将 node-app 的内容放在目录 /app 中。

您正在执行 node main.jsmain.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。这是您的车把实际所在的位置。

相关问题