在快递中的把手.hbs视图不加载我的部分

时间:2012-09-17 02:03:56

标签: node.js express handlebars.js

  # app.js
  app.set('view engine', 'hbs');

  # ./views/layout.hbs
      {{> nav}}

  # ./views/nav.hbs
      <a href="#">home</a>

layout.hbs文件找不到我的部分nav.hbs

我在节点app.js控制台上收到以下错误:

抛出新的Handlebars.Exception(“部分”+名称+“不能成为             ^

2 个答案:

答案 0 :(得分:2)

您需要先注册要使用的部分“nav”。我发现Express.js hbs module - register partials from .hbs file的答案对我很有用。要点是:

var template = fs.readFileSync(partialsDir + '/' + filename, 'utf8');
hbs.registerPartial(name, template)

答案 1 :(得分:0)

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

  

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