1

Express for Node.jsは初めてで、 PedroTeixeiraのNodeTutsエピソード9に従って簡単なアプリをセットアップしていました。レイアウトファイルを試してみたかったので、レイアウトを「true」に設定しました。しかし、それを行ったとき、それは私のレイアウトではレンダリングされず、私の体だけでレンダリングされました。正しくレンダリングするにはどうすればよいですか?以下は、app.jsファイル、index.jade、layout.jade、およびレンダリングされたページのスクリーンショットです。

app.js

var express = require('express');

var app = express.createServer();

app.configure(function () {
    app.use(express.logger();
});

app.set('views', __dirname + '/views');
app.set('view engine','jade');
app.set('view options', {layout: true});

app.get('/', function(request, response) {
    response.render('index');
});

app.listen(4000);

index.jade

h2 Hello
p World!

layout.jade

!!! 5
  html
    head
      title My template
    body
  #main
        h1 Content goes here
        p Testing 123
        #container!= body
4

1 に答える 1

4

Express 3を使用している場合、これは通常、テンプレートのレンダリング方法が変更されています。

レイアウトは次のようにする必要があります。

!!! 5
  html
    head
      title My template
    body
  #main
        h1 Content goes here
        p Testing 123
        block content

そして、あなたのテンプレート:

extends layout

block content
  h1 Something

ここでの例:

https://github.com/dotcloud/express-on-dotcloud/blob/master/app/views/layout.jade#L64

https://github.com/dotcloud/express-on-dotcloud/blob/master/app/views/welcome.jade#L1

NodeとExpressを使用する場合は、このデモ/チュートリアルアプリのクローンを作成してください:
https ://github.com/dotcloud/express-on-dotcloud

あなたはそれをローカルでだまして、Express 3のいくつかの素晴らしい機能を発見することができます。あなたがあなたのアプリを共有したいなら、それはすべてdotCloudにプッシュされるように設定されています。

于 2012-08-20T21:03:23.397 に答える