0

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

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

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

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

2 回答 2

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)
  });
});
于 2013-07-18T23:18:10.083 回答
0

如果我理解正确,您想在每个页面中包含页眉和页脚。在 ejs 中,您可以包含,因此您可以创建 header.ejs 和 footer.ejs,并且在每个其他页面中,您将在顶部写 `<% include ./header.ejs %> 和 <% include ./footer.ejs %> 在底部。这样每次加载 index.ejs 时,它都会呈现,因为它包含页眉和页脚。不幸的是,这是当今 ejs 中最接近布局的方法。您将能够像现在一样简单地渲染它:

app.get('/', function(request, response) {
    response.render('index.ejs');
});
于 2013-09-21T21:41:40.800 回答