1

私はこれをいくつかの異なるプロジェクトで試しましたが、同じ結果が得られました。これは 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>

これは私が見落としている単純なものに違いないと考えてください。

4

1 に答える 1

0

あなたはあなたのインデントを失いました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
于 2012-10-17T22:36:01.767 に答える