将应用程序部署到 heroku 时无法在视图目录中查找视图
Fail to looked up view in views directory when deploy app to heroku
我已将我的 NodeJS 应用程序部署到 Heroku 并收到此错误:Internal Server Error
。然后我查看日志并发现 Error: Failed to lookup view "student.ejs" in views directory "/app/views"
。
我的目录结构是:
/node_modules
/public
/views
student.ejs
app.js
packet.json
这里是我使用的依赖版本。
"body-parser": "^1.17.2",
"ejs": "^2.5.7",
"express": "^4.15.3",
"mongoose": "^4.10.2"
设置模板引擎和视图目录
app.engine('html',require('ejs').renderFile);
app.set('view engine', 'ejs')
app.set('views',__dirname+'/views');
渲染
res.render('student.ejs',{info:data});
该应用程序可以 运行 在本地主机上运行良好。有人可以帮我解决这个问题吗?提前致谢!
我不确定这是否对您有帮助,但我在部署到 Heroku 时遇到了类似的错误。就我而言,问题是我的本地环境是 Windows 上的 运行,但 Heroku 部署到 Linux 个容器。
我通过删除一些硬编码路径并改用 path.join 解决了这个问题。
在你的情况下,你应该更换
app.set('views',__dirname+'/views');
有
app.set('views', path.join(__dirname, 'views'));
请记住,您必须要求路径模块。
希望对您有所帮助!
我在名为 createSession.hbs 的视图中遇到了类似的问题。
在我的路线中createSession.js我在做
res.render('createsession', {...});
在本地首都 'S' 没关系,但在部署时我遇到了内部服务器错误。
因此解决方法是将 createSession.hbs 更改为 createsession.hbs(小写 's')。
我的本地 OS 是 Windows,我部署在 Heroku(Ubuntu 服务器上)。
愚蠢的错误和烦人的错误,因为它在本地工作,但希望它能帮助别人。
我已将我的 NodeJS 应用程序部署到 Heroku 并收到此错误:Internal Server Error
。然后我查看日志并发现 Error: Failed to lookup view "student.ejs" in views directory "/app/views"
。
我的目录结构是:
/node_modules /public /views student.ejs app.js packet.json
这里是我使用的依赖版本。
"body-parser": "^1.17.2", "ejs": "^2.5.7", "express": "^4.15.3", "mongoose": "^4.10.2"
设置模板引擎和视图目录
app.engine('html',require('ejs').renderFile); app.set('view engine', 'ejs') app.set('views',__dirname+'/views');
渲染
res.render('student.ejs',{info:data});
该应用程序可以 运行 在本地主机上运行良好。有人可以帮我解决这个问题吗?提前致谢!
我不确定这是否对您有帮助,但我在部署到 Heroku 时遇到了类似的错误。就我而言,问题是我的本地环境是 Windows 上的 运行,但 Heroku 部署到 Linux 个容器。
我通过删除一些硬编码路径并改用 path.join 解决了这个问题。
在你的情况下,你应该更换
app.set('views',__dirname+'/views');
有
app.set('views', path.join(__dirname, 'views'));
请记住,您必须要求路径模块。
希望对您有所帮助!
我在名为 createSession.hbs 的视图中遇到了类似的问题。
在我的路线中createSession.js我在做
res.render('createsession', {...});
在本地首都 'S' 没关系,但在部署时我遇到了内部服务器错误。
因此解决方法是将 createSession.hbs 更改为 createsession.hbs(小写 's')。
我的本地 OS 是 Windows,我部署在 Heroku(Ubuntu 服务器上)。
愚蠢的错误和烦人的错误,因为它在本地工作,但希望它能帮助别人。