2017-01-19 16 views
-1

ハンドルバーを使ってエクスプレスjsにスタティックレイアウトページを作成する必要があります。レイアウトにはヘッダー(ユーザー名と会社のロゴを含む)とフッター(著作権情報を含む)が含まれます。したがって、レイアウトページはルート内のすべてのページに共通で、その本文コンテンツのみが動的に変更される必要があります。ヘッダーとフッターを部分的な表示としてレンダリングしようとしましたが、インデックスページにのみ表示され、それ以降のページには表示されません。エクスプレスjsアプリケーションのレイアウトページをデザインするようお勧めしますエクスプレスjsでレイアウトページをデザインするには?

+0

エクスプレスjではこれはできませんか? –

+0

EJSのような場合は、私はここにいますが、ハンドルバーには慣れていません – Adiii

+0

よろしくお願いします。ありがとうございます –

答えて

1

あなたは簡単にそれを行うことができます。 layout.hbsファイルを用意し、他のすべての部分を追加したい場所に{{{body}}}と入力してください。代わりに(私はこの方法が好きです)、あなたはいくつかのエクストラとハンドルバーの少し拡張バージョンを使用することができます。

あなたはモジュールexpress-handlebarsをダウンロードして、サーバにそれを必要とし、その後、あなたは、このようなテンプレートエンジンのconfigを変更する必要がありますする必要があります。

var expressHbs = require('express-handlebars'); 
app.engine('.hbs', expressHbs({defaultLayout: 'layout', extname: '.hbs'})); 
app.set('view engine', '.hbs'); 

そしてすぐ内側のフォルダ「レイアウト」と「パーシャル」を作成あなたのビューフォルダ。レイアウトフォルダ内に "layout.hbs"を作成します。これであなたのアプリはレイアウトページから実行されます。次に、この構文{{> partialName}}を使用して、すべての部分文字列をレイアウトにまとめてください。あなたのパーシャルフォルダに置いた他のパーシャルすべて