如何在layout.ejs上获取节点

How to get node to pickup on layout.ejs?

本文关键字:获取 节点 ejs layout      更新时间:2024-06-24

我使用的是Node.JS、Express和ejs。我正在尝试创建一个供我的所有视图使用的布局。我遵循了这个答案,但它似乎没有被接受。我有一个包含我的视图的views目录。在里面,我有我的布局。js:

<!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 });

但这也没用。如何渲染布局?

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

习惯了django世界的部分和块,我决定使用ejs本地文件,使用它,你的.ejs文件必须以这样的行开头:

<% layout('layout') -%>