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

最初に、使用する部分的な「nav」を登録する必要があります。Express.js hbs module - register partials from .hbs fileで答えを見つけました。要点は次のとおりです。

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 に答える