假设我保存了一个页脚的片段,我该如何在当前模板中“包含”它?
假设我保存了一个页脚的片段,我该如何在当前模板中“包含”它?
我知道这个问题已经被标记为已回答,但我认为你要找的是 'partial' 语法。在 EJS 中,你可以像这样在一个视图模板中包含另一个视图模板的内容:
<html>
<head></head>
<body>
Blah blah blah
<%- partial('footer') %>
</body>
</html>
EJS 很容易使用 include。以下是 EJS README 中的描述:
使用 include 时相对于模板路径,例如如果你有 './views/users.ejs' 和 './views/user/show.ejs',你应该使用 '<%- include('user/show'); %>'。
建议在 include 中使用原始输出标签('<%-')以避免 HTML 输出双重转义。
<ul>
<% users.forEach(function(user){ %>
<%- include('user/show', {user: user}); %>
<% }) %>
</ul>
所以,在你的情况下,如果页脚与你想要包含它的文件在同一个目录中,你只需要在文件中添加 <% include('footer') %>
。<% include ../footer %>
这样写能正常工作吗? - user9903../footer
。 - Eduard Luca正确的语法是 <%- include('<path>', <object with extra parameters>) %>
include是一个函数。 包含文件路径相对于调用include的模板。(这需要'filename'选项。) 例如,如果你有"./views/users.ejs"和"./views/user/show.ejs",你将使用<%- include('user/show'); %>。
你可能希望在使用include时使用原始输出标记(<%-),以避免HTML输出被双重转义。
您可以通过以下方式包含ejs模板:
<% include includes/header.ejs %>
在同一目录下
<%- include('header'); -%>
在根目录下
<%- include('../partials/header'); -%>
适用于 EJS v3.0.1
通过使用以下语法,可以在ejs
中轻松使用include:
<% include 文件名 %>
注意:文件应该位于视图内部。
这个语法 <% include filename %> 不再起作用。 <%- include('[相对路径]'); %> 这个语法是有效的。
要包含文件,您应该从调用include函数的文件中给出相对地址。 例如,我假设我需要在当前文件中调用file.ejs。
<%- include('file.ejs') -%>
<%- include('folder/file.ejs') -%>
<% partials/header %>
尝试使用 <%- include('partials/header') %>
这对我很有效。