2016-12-19 2 views
-1

質問が簡単だと思っています。答えが見つからないのは驚きです。前に尋ねられたと確信しています。グローバルヘッダーファイルNode.js&Express.js

私はnode.jsとexpress.jsを使用しています。すべてのページに含まれている静的なheader.htmlファイルをコード化しています。このファイルにはすべてのメタタグとCSSファイルが含まれています。その他

私のサーバーがwebsite.com/blog/blog-post-3のリクエストを受け取ったら、それは になります。1.読み込みheader.htmlファイル 2.負荷実content.htmlファイル

からのコンテンツは、それが<?php include file.html ?>と同じ考え方です....

事前のおかげで、と申し訳ありません、これは以前に頼まれている場合! XD

+2

プリプロセッサを使用していますか? (パグなど) – Scimonster

+0

いいえ!私はプリプロセッサを使用していません! – TJBlackman

答えて

-1

使用

var app = express; 
app.all(...) 
{ 
... 
    next(); // this will make it execute next 
}.app.get(...){ 
... 
} 
+0

そしてこのメ​​ソッドでヘッダーをどのようにロードしますか? – Scimonster

+0

これは、質問 –

+0

@Scimonster in app.allには回答しません。 – MotKohn

0

あなたはこのような何か行うことができます: - :

var http = require('http'); 
var read = require('fs').readFileSync; 

http.createServer((req,res)=>{ 
    res.setHeader('Content-Type','text/html'); 
    res.end(new String(read('./headers.html')).replace('<my-content></my-content>',read('./content.html'))); 
}).listen(4000) 

Headers.html: - -

<html> 
<!--custom css links here--> 

<my-content></my-content> 
<!-- custom scripts --> 
</html> 

コンテンツノードサーバで

を.html: -

+0

これはうまくいくかもしれないアプローチのようですが、 'res.setHEader()'の意図した使い方。私はそれをチェックしますが、私はこのアプローチを選択するかどうかはわかりません。 – TJBlackman

+0

角度のようなテンプレート機能を提供するいくつかのフレームワークを使用してください –

1

自分のアプリでやっている方法は、以下を含むビューエンジンを使用することです。私はPadeと呼ばれるJadeを使っています。このアプローチで

https://pugjs.org

あなたは経路を介して、あなたの意見を提供するために、あなたのエクスプレスアプリを配線します。基本的には、ビューを保持するディレクトリの設定、ビューエンジンの設定(私の例ではJade)、レスポンスがビューをレンダリングするURLルートの定義が含まれます。次に、必要なインクルードを定義することができます。

いくつかのサンプルコード(完全ではないかもしれないが、一般的なアイデアを与えるべきである):

app.js

app.set('views', __dirname + '/views'); 
app.set('view engine', 'jade'); 
app.get('/', function (req, res) { 
    res.render('index'); 
}); 

ビュー/ index.jade - メインビュー

doctype html 
html 
    head 
    include includes/head.jade 
    body 
    ... 

ビュー/includes/head.jade - include

link(href='index.css', rel='stylesheet', type='text/css') 
... 
+0

私は今日これについて読んで、あなたに知らせてください。まともな道のりのようだ。私は別のlibを使う必要があります。 – TJBlackman

関連する問題