1

Node/Express/Jade/Stylus でアプリを作成しようとしています。

問題は、Jade がインクルード ファイルのコンテンツをレンダリングしないことです。

ファイルは次のとおりです。

レイアウト.ジェイド:

doctype 5
html
  block head
    head
      title= title
      link(rel='stylesheet', href='/stylesheets/style.css')

body
  header
    block header

  #main-container
    block content

  footer
    block footer

index.jade:

extends layout

include helpers/header

block content 
  form#form-login

ヘルパー/header.jade:

extends ../layout

block header
  #test
    p Hello World
    img(src="images/Logo.jpg" alt="Logo")

レンダリングされたページは空白です。ページには何もありません。画像の URL は正しいので、問題の一部ではありません。ページコードを確認したところ、header.jade は完全に無視されていました。

header.jade がロードされているかどうかを確認したところ、ロードされました (エラーを入れてみました)。

レンダリングされたページのコードは次のとおりです。

<!DOCTYPE html>
   <html>
     <head>
       <title>Title</title>
       <link rel="stylesheet" href="/stylesheets/style.css">
     </head>
     <body>
       <header></header>
       <div id="main-container">
         <form id="form-login"></form>
       </div>
       <footer></footer>
     </body>
   </html>
4

1 に答える 1

3

ブロックがインクルードからレイアウトに適切に反映されていないようです (私はジェイドにあまり詳しくないので、これは意図された動作である可能性があります)。

// index.jade
extends layout

block header
  include helpers/header

block content 
  form#form-login

また、extends ../layoutヘッダー インクルードでは使用しないでください。そうしないと、レイアウト ファイルが 2 回レンダリングされます。

于 2013-11-08T18:22:18.173 に答える