【问题标题】:How to get node to pickup on layout.ejs?如何让节点在 layout.ejs 上拾取?
【发布时间】:2013-12-11 13:55:18
【问题描述】:

我正在使用 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 });

尽管如此,布局并没有被拾取。没有&lt;html&gt; 标记被呈现到屏幕上。我什至尝试将其添加到我的 app.js

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

但这也没有用。如何让我的布局被渲染?

【问题讨论】:

    标签: javascript node.js ejs


    【解决方案1】:

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

    习惯了 django 世界的部分和阻塞,我决定使用ejs-locals,使用它您的 .ejs 文件必须以如下行开头:

    <% layout('layout') -%>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-27
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      相关资源
      最近更新 更多