# app.js
app.set('view engine', 'hbs');
# ./views/layout.hbs
{{> nav}}
# ./views/nav.hbs
<a href="#">home</a>
layout.hbs 文件没有找到我的部分 nav.hbs
我在 node app.js 控制台上收到以下错误:
throw new Handlebars.Exception("部分 " + name + " 不能被 fo ^
# app.js
app.set('view engine', 'hbs');
# ./views/layout.hbs
{{> nav}}
# ./views/nav.hbs
<a href="#">home</a>
layout.hbs 文件没有找到我的部分 nav.hbs
我在 node app.js 控制台上收到以下错误:
throw new Handlebars.Exception("部分 " + name + " 不能被 fo ^
您需要先注册要使用的部分“导航”。我在 Express.js hbs 模块中找到了答案- 从 .hbs 文件中注册部分内容对我来说效果很好。要点是:
var template = fs.readFileSync(partialsDir + '/' + filename, 'utf8');
hbs.registerPartial(name, template)
您的问题是您使用的是 express 3.x,它显着改变了它在 2.x 中处理模板的方式。特别是,2.x 对部分模板如何适合整体布局做出了一系列假设,而 3.x 则将其留给布局引擎本身。但是 ejs 在 express 3.x 下将继续具有相同的行为。
注意:将我的评论变成了答案,因为它是针对您的问题的