无法在视图目录"/app/views"中查找视图"home/index" [英] Failed to lookup view "home/index" in views directory "/app/views"

查看:22
本文介绍了无法在视图目录"/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而不是viewsHome,或者根本没有home,那么这就是错误来源,因为在Heroku中,文件夹和文件路径区分大小写(在本地不区分大小写,这就是为什么在localhost端口5000中不会遇到相同的错误)。

一旦您将文件夹和文件名固定为适当的大小写,按下Heroku就应该可以工作了。还要小心再次测试,看heroku run bash中它是否起作用,cd home是否起作用。如果没有,您需要删除home文件夹,推入Heroku,然后重新粘贴home文件夹并推送(因为缓存),然后它就应该可以工作了。

这篇关于无法在视图目录"/app/views"中查找视图"home/index"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆