59

假设我保存了一个页脚的片段。如何在我当前的模板中“包含”它?

4

7 回答 7

96

我知道这个问题已被标记为已回答,但我相信您正在寻找的是“部分”语法。在 EJS 中,您可以将一个视图模板中的内容包含在另一个视图模板中,如下所示:

<html>
  <head></head>
  <body>
    Blah blah blah
    <%- partial('footer') %>    
  </body>
</html>
于 2011-05-30T05:47:51.160 回答
52

EJS 使得使用包含变得非常简单。以下是 EJS README 中的描述:

包含与包含语句的模板相关,例如,如果您有“./views/users.ejs”和“./views/user/show.ejs”,您将使用 <% include user/show %>。包含的文件实际上包含在模板中,编译后不执行 IO,因此这些包含的模板可以使用局部变量。

<ul>
  <% users.forEach(function(user){ %>
    <% include user/show %>
  <% }) %>
</ul>

因此,在您的情况下,如果页脚与您要包含它的文件位于同一目录中,您只需将其添加<% include footer %>到您的文件中。

于 2013-10-29T03:51:27.140 回答
19

您可以通过以下方式包含 ejs 模板

<% include includes/header.ejs %>
于 2015-12-30T20:35:05.493 回答
15

正确的语法是<%- include('<path>', <object with extra parameters>) %>

include 是一个函数 Includes 与包含调用的模板相关。(这需要 'filename' 选项。)例如,如果您有“./views/users.ejs”和“./views/user/show.ejs”,您将使用 <%- include('user/show') ; %>。

您可能希望将原始输出标记 (<%-) 与包含一起使用,以避免双重转义 HTML 输出。

于 2020-02-24T15:08:01.367 回答
10

在同一目录中
<%- include('header'); -%>

根目录
<%- include('../partials/header'); -%>

适用于 EJS v3.0.1

于 2020-01-13T18:37:01.360 回答
4

使用以下语法易于使用包含ejs

<% include filename %>

注意:文件应该在视图中。

于 2018-10-14T05:56:50.317 回答
0

此语法 <% include filename %> 不再有效。<%- include('[相对路径]'); %> 这个语法有效

于 2022-02-15T07:52:17.353 回答