Ejs引擎与HTML无法正常工作

时间:2013-09-12 00:49:09

标签: node.js express ejs

我使用的是html文件而不是ejs,但快递引擎是ejs

views
|
|--header.html
|--footer.html
|
|--index.html

我配置了

app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);  

我通过以下方式呈现我的index模板:

res.render('index.html', {title: 'test'});

但是如何在index.html中包含header和footer.html

类似的帖子 Node.js express: confuse about ejs template

现有示例无效 https://github.com/visionmedia/express/tree/master/examples/ejs

1 个答案:

答案 0 :(得分:6)

你问的原始方法是使用partials。部分已被删除,并替换为EJS的include功能。这就是你要包含文件的方式:

<% include header.html %>
<% include footer.html %>

您传递给呈现页面的任何本地人也将被传递给包含。例如:

<强> app.js

app.get('/', function(req, res) {
  res.render(__dirname + '/index.html', {
    string: 'random_value',
    other: 'value'
  });
});

<强>的index.html

<!DOCTYPE html>
<body>
  <%= other %>
  <% include content.html %>
</body>

<强> content.html

<pre><%= string %></pre>

您得到的HTML是:

<!DOCTYPE html>
<body>
  value
  <pre>random_value</pre>
</body>