ठीक मुझे मिल गया ...
server.js
var express = require('express');
var server = express();
var ejs = require('ejs');
ejs.open = '{{';
ejs.close = '}}';
var oneDay = 86400000;
server.use(express.compress());
server.configure(function(){
server.set("view options", {layout: false});
server.engine('html', require('ejs').renderFile);
server.use(server.router);
server.set('view engine', 'html');
server.set('views', __dirname + "/www");
});
server.all("*", function(req, res, next) {
var request = req.params[0];
if((request.substr(0, 1) === "/")&&(request.substr(request.length - 4) === "html")) {
request = request.substr(1);
res.render(request);
} else {
next();
}
});
server.use(express.static(__dirname + '/www', { maxAge: oneDay }));
server.listen(process.env.PORT || 8080);
और/www में मैं निम्नलिखित .html फ़ाइलें:
index.html
{{include head.html}}
{{include header.html}}
<p class="well">Hello world!</p>
{{include footer.html}}
head.html
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
{{include include.css.html}}
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
</head>
<body>
include_css.html
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/bootstrap-responsive.css">
<link rel="stylesheet" href="css/main.css">
header.html
<div class="well">
<h1>HEADER</h1>
</div>
footer.html
<div class="well">
<h1>FOOTER</h1>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script>
<script src="js/plugins.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/main.js"></script>
<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
<script>
var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src='//www.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
</body>
</html>
यह सब के माध्यम से आता है, यहां तक शामिल भी शामिल है और स्थिर सामग्री में। यह सब एचटीएमएल फाइलों पर किया जाता है, और एक संदर्भ में जो वेनिला वेब संलेखन की तरह महसूस करता है।
++++ ओप्स +++++ ठीक है, मैं लगभग सभी इसे। मैं भूल गया कि मैं भी टेम्पलेट्स से शामिल चर में चर को पारित करने में सक्षम होना चाहता था। मैंने अभी तक कोशिश नहीं की है ... कोई विचार?
++++ अद्यतन +++++
ठीक है, मैं यह पता लगा।
This चर्चा ने इसे स्पष्ट कर दिया, मुझे लगता है कि मुझे बस इतना पता नहीं था कि ejs कैसे काम करता है।
मैं चर घोषणाओं के साथ शुरू index.html बदल गए हैं:
{{
var pageTitle = 'Project Page';
var projectName = 'Project Title';
}}
और उसके बाद आप इन चर के भीतर से भी शामिल है चाहे कितना गहरा वे नेस्टेड रहते हैं कॉल कर सकते हैं,।
तो उदाहरण के लिए, index.html में start.html शामिल है जिसमें header.html शामिल है। हेडर के भीतर। एचटीएमएल मैं हेडर के भीतर {{= projectName}} को कॉल कर सकता हूं भले ही इसे index.html के अंदर घोषित किया गया हो।
मैंने पूरी बात github पर रखी है।
आपको <% हेडर%> –