在EJS模板引擎中,如何“包含”页脚?

时间:2011-04-28 04:53:43

标签: javascript html templates ejs

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

6 个答案:

答案 0 :(得分:79)

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

<html>
  <head></head>
  <body>
    Blah blah blah
    <%- partial('footer') %>    
  </body>
</html>

答案 1 :(得分:45)

EJS使用include非常简单。以下是EJS README中的描述:

  

包含相对于带有include语句的模板,for   例如,如果你有“./views/users.ejs”和“./views/user/show.ejs”   你会使用&lt;%include user / show%&gt;。包含的文件是   字面上包含在模板中,之后不执行IO   编译,因此包含这些局部变量   模板。

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

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

答案 2 :(得分:17)

您可以通过

添加ejs模板
<% include includes/header.ejs %>

答案 3 :(得分:9)

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

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

您可能希望在包含中使用原始输出标签(<%-),以避免对HTML输出进行两次转义。

答案 4 :(得分:7)

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

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

与EJS v3.0.1一起使用

答案 5 :(得分:2)

通过使用以下语法,易于在ejs中包含:

<% include filename %>

注意:文件应位于视图内。