如何为主页呈现视图和布局?

时间:2013-07-18 22:30:16

标签: node.js express ejs

对于使用Node.js的网站主页,我如何渲染布局和主页的相应视图?

我网站上的每个页面都应该使用layout.ejs,因为它包含页眉和页脚。页面的相应视图的正文内容将在此yield部分的layout.ejs中注入: <%- body %>

到目前为止,使用此代码,主页正在渲染layout.ejs而不是index.ejs用于视图partial。我如何传入index.ejs?

app.get('/', function(request, response) {
    response.render('layout.ejs');
});

2 个答案:

答案 0 :(得分:0)

就我所知,这不是EJS真正能做的事情。您可以尝试单独渲染身体模板并将其作为身体变量传递。

// something we prepared earlier
var body = ejs.compile(fs.readFileSync("body.ejs"));

app.get('/', function(request, response) {
  response.render('layout.ejs', {
    body: body(someObject)
  });
});

答案 1 :(得分:0)

如果我理解正确,您希望在每个页面中包含页眉和页脚。在ejs中你可以包含所以你可以创建一个header.ejs和一个footer.ejs,在每个其他页面你会写``&lt;%include ./header.ejs%&gt;在顶部和&lt;%include ./footer.ejs%&gt;在底部。这种方式每次加载index.ejs时,它都会呈现,因为它包含页眉和页脚。不幸的是,这是现在最接近ejs的布局。你可以像现在这样简单地渲染它:

app.get('/', function(request, response) {
    response.render('index.ejs');
});