Express 4.0在"/views"中查找视图失败目录中

Express 4.0 Failed to Look up view in "/views" directory

本文关键字:quot 查找 视图 失败 Express views      更新时间:2023-09-26

我正在为NodeJS使用Express 4.0和Express3-handlebars库。

下面是配置

app.set('views', path.join(__dirname, 'views/'));
app.engine('hbs', hbs({defaultLayout: 'main', extname: '.hbs'}));
app.set('view engine', 'hbs');

contact.html在views目录

app.get('/', function(req, res) {
 res.render("contact");
});

这是我得到的错误:

Error: Failed to lookup view "contact" in views directory "/Users/max23/Desktop/Node/views/"

我花了一个多小时试图修理它,但无济于事。代码有什么问题?

您正在使用Handlebars模板库,因此您的视图应该具有.hbs扩展名,而不是.html。将contact.html更改为contact。对你所有的模板都这么做。同时,修改

这一行
app.engine('hbs', hbs({defaultLayout: 'main.hbs', extname: '.hbs'}));

当您使用hbs作为视图系统时,您应该为视图文件使用.hbs扩展名。它无法查找视图,因为它是HTML,它正在查找contact.hbs

我个人对车把库没有太多的经验,但我建议你把contact.html扩展名改为。hbs,然后再试一次

设置视图路径有问题。尝试更改

app.set('views', path.join(__dirname, 'views/'));

app.set('views', path.join(__dirname, '/views'));

如果没有解决,显示您的文件夹结构