私はこれをいくつかの異なるプロジェクトで試しましたが、同じ結果が得られました。これは Express 2.5.8 と jade 0.20.3 のノード アプリです (ただし、新しいバージョンの jade と Express に更新しても、以下の問題は変わりません)。
私は単純な翡翠のレイアウトを持っています:
「レイアウト.ジェイド」
doctype 5
html
head
title MongoDB example
body
h1 My first MongoDB app
hr
block body
次に、レイアウトを継承してコンテンツを表示するインデックス コンテンツ ページ:
「index.jade」
extends layout
block body
if (authenticated)
p Welcome back, #{me.first}
a(href="/logout") Logout
else
p Welcome new visitor!
ul
li: a(href="/login") Login
li: a(href="/signup") Signup
私が持っているserver.jsには(翡翠に関連する):
app.set('view options', { layout: false });
しかし、サーバーを実行してページをロードすると、インデックスページではなく、レイアウト上のコンテンツのみが取得されます。「レイアウトの拡張」を削除すると、コンテンツはインデックス ページから取得されますが、レイアウトは取得されません。だから、私が得る出力は次のとおりです。
<html>
<head><title>MongoDB example</title></head>
<body>
<h1>My first MongoDB app</h1><hr>
</body>
</html>
これは私が見落としている単純なものに違いないと考えてください。