我正在为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/"
我花了一个多小时试图修复它无济于事。什么是代码错误?
答案 0 :(得分:0)
当您使用 hbs 作为查看系统时,您应该为视图文件使用.hbs扩展名。它无法查找视图,因为它是一个HTML,并且它正在寻找 contact.hbs
我个人对手把库没有太多经验,但我建议您将contact.html扩展名更改为.hbs,然后重试
答案 1 :(得分:0)
您正在使用Handlebars模板库,因此您的视图应该具有.hbs扩展名,而不是.html。将contact.html更改为contact.hbs并将其更改为所有模板。另外,更改此行
app.engine('hbs', hbs({defaultLayout: 'main.hbs', extname: '.hbs'}));
答案 2 :(得分:0)
设置视图路径中存在错误。 尝试更改行
app.set('views', path.join(__dirname, 'views/'));
通过
app.set('views', path.join(__dirname, '/views'));
如果未解决,请显示您的文件夹结构。