我正在使用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 });
但这也不起作用。如何才能渲染我的布局?
答案 0 :(得分:2)
我猜这个答案指的是用于支持开箱即用布局的Express 2,如果你使用快递3,请注意默认情况下不再包含布局,你必须安装其中一个布局引擎。
用于部分和来自django世界的块,我决定使用ejs-locals,使用它你的.ejs文件将必须以如下行开头:
<% layout('layout') -%>