无法在视图目录";/app/views";中查找视图";home/index"; [英] Failed to lookup view "home/index" in views directory "/app/views"
本文介绍了无法在视图目录";/app/views";中查找视图";home/index";的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将我的项目发布到Heroku,使其在云中运行。在本地,它在5000端口上工作,我可以看到每个视图。当我将其上传到Heroku时,当我尝试访问主页时得到以下错误:无法在视图目录"/app/views"中查找视图"home/index"
我已尝试执行以下操作:
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs'); // set up ejs for templating
我还在Internet上寻找其他解决方案,但似乎都不能解决我的问题。
我的路由如下所示:
- views/home/index.ejs
查找该文件的代码为:
app.get('/', function (req, res) {
res.render('home/index.ejs'); // load the index.ejs file
});
预期输出是,我的Heroku工作得很好,没有做大的更改,因此它既可以在Heroku上运行,也可以在本地运行。目前Heroku正在返回上述错误。
推荐答案
是因为Heroku在views
文件夹中找不到home
子文件夹。这很可能是因为您可能将文件夹写为"Home"而不是"home"。要找出答案,请执行heroku run bash
,然后运行ls
。这将列出/app文件夹内的文件夹。进入工作目录后,您应该会看到views
文件夹。执行cd views
,您将获得所有文件夹的列表。在那里您应该可以找到home
文件夹。如果您发现Views
而不是views
或Home
,或者根本没有home
,那么这就是错误来源,因为在Heroku中,文件夹和文件路径区分大小写(在本地不区分大小写,这就是为什么在localhost端口5000中不会遇到相同的错误)。
heroku run bash
中它是否起作用,cd home
是否起作用。如果没有,您需要删除home
文件夹,推入Heroku,然后重新粘贴home
文件夹并推送(因为缓存),然后它就应该可以工作了。
这篇关于无法在视图目录";/app/views";中查找视图";home/index";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文