1

現在、すべてのページはviews/layout.mustacheファイルとページ固有の views/page.mustacheテンプレートからレンダリングされています

アプリケーション内で特定のビューをレンダリングするときに、代替を使用しlayout.mustacheたり、すべてをスキップしたりしたい。layout.mustacheこれを行うための理想的な方法は何ですか?

これが私のスニペットですapp.configure

app.configure(function(){
    ...
    app.set('views', __dirname + '/views');
    app.register(".mustache", require('stache'));
    ...
});

ありがとう

4

1 に答える 1

1

Express のどのバージョンを使用していますか? v3.0 では、レイアウトの概念が削除されました。

V3.0 ではブロックの概念が導入されました。私は使用しませんmustacheが、翡翠の例は次のようになります。

// my-template.jade
extends my-layout

block head
  script(src="myfile.js")

block content
  h1 My page

// my-layout.jade
doctype 5
html
  head
    title My title
    block head
  body
    #content
      block content

必要な「親」レイアウトをextends選択できます。サポートされているテンプレート エンジンの概要は、express wikiにあります。

3.0 より前の Express バージョンでは、レンダリング時にレイアウトを指定できました。

res.render('index', {
  title : 'Page with distinct layout', 
  layout : 'layout.mustache'
});

または特定のビューのレイアウトを無効にする

res.render('start', {
  title : 'Page without layout', 
  layout : false
});
于 2012-10-24T10:49:31.000 に答える