如何在layout.ejs上获取节点?

时间:2013-12-11 05:01:07

标签: javascript node.js ejs

我正在使用Node.JS,Express和ejs。我正在尝试创建一个布局供我的所有视图使用。我跟着this answer,但它似乎没有被接收。我有一个views目录和我的观点。在其中,我有我的layout.ejs:

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <div id="content">
    <%- body %>
    </div>
  </body>
</html>

然后我有了index.ejs视图:

<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
<p>Testnet status: <%= testnet %></p>

然后我像这样渲染它:

res.render('index', { title: r.name, testnet: r.testnet });

执行此操作后,布局未被拾取。没有<html>标记呈现给屏幕。我甚至尝试将其添加到我的app.js

app.set('view options', { layout: true });

但这也不起作用。如何才能渲染我的布局?

1 个答案:

答案 0 :(得分:2)

我猜这个答案指的是用于支持开箱即用布局的Express 2,如果你使用快递3,请注意默认情况下不再包含布局,你必须安装其中一个布局引擎。

用于部分和来自django世界的块,我决定使用ejs-locals,使用它你的.ejs文件将必须以如下行开头:

<% layout('layout') -%>