2017-01-09 3 views
0

私はこのトピックについて多くの検索をしてくれました。私はblockextendsを使ってヘッダとフッタをレンダリングしようとしています。翡翠/急行ブロックが表示されない

ここに私が持っているものがあります。なぜそれがレンダリングされないのか分かりません。

layout.jade

html 
    head 
    title= title 

    body 
    block header 
    block content 

    footer 
    block footer 

index.jade

extends layout 

block content 
    h1= title 
    p Welcome to #{title} 

header.jade

extends layout 

block header 
    h1 this is a header 

footer.jade

extends layout 

block footer 
    h2 this is a footer 

ご協力いただければ幸いです。

答えて

2

「テンプレートを拡張する」という意味を間違って解釈していると思います。 layout.jadeを拡張する各テンプレートは、それ自身のページにコンパイルする必要があります。つまり、layoutは、それを拡張する各ページがどのように見えるかについての青写真を定義しています。 layoutテンプレートにfooterブロックがあることを確認すると、可能なブロック実装のために他のすべてのテンプレートが検索されることはありません。代わりに、indexテンプレートのような子テンプレートをコンパイルするように指示します。

私があなたの場合に提案するものは次のとおりです。layout.jadeに直接含まれるフッターとヘッダーのいずれか、またはblockの文がない場合はincludeです。

indexテンプレートをそのまま使用する - IMHO、これはテンプレート継承の正しい使用パターンです。

+0

私は、ブレードエンジンがその機能を使用するブレードであるlaravelから来ています。それが混乱の原因です。それを説明していただきありがとうございます。私は、インクルード機能の使用を止めようとしていました。 – xavx

関連する問題