1
  # 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 ^

4

2 回答 2

2

您需要先注册要使用的部分“导航”。我在 Express.js hbs 模块中找到了答案- 从 .hbs 文件中注册部分内容对我来说效果很好。要点是:

var template = fs.readFileSync(partialsDir + '/' + filename, 'utf8');
hbs.registerPartial(name, template)
于 2013-10-10T17:39:42.117 回答
0

您的问题是您使用的是 express 3.x,它显着改变了它在 2.x 中处理模板的方式。特别是,2.x 对部分模板如何适合整体布局做出了一系列假设,而 3.x 则将其留给布局引擎本身。但是 ejs 在 express 3.x 下将继续具有相同的行为。

注意:将我的评论变成了答案,因为它是针对您的问题的

于 2012-09-18T10:07:00.643 回答