我正在使用 EJS 和我正在构建的 Node.js Web 服务器。我看到许多 EJS 示例有时<%=
在输出 HTML 或字符串时使用,而其他示例(有时在同一模板中)使用<%-
.
我试图参考EJS文档和入门指南,但两者都没有提供有关<%-
符号的信息。此外,我的谷歌搜索尝试没有产生任何有用的信息。谢谢!
您可能在 Node 中使用的 EJS 版本与您在 Google 代码中看到的版本不同;在 Node 版本中,<%=
转义进入缓冲区的 HTML,而<%-
没有。资源
<% 'Scriptlet' tag, for control-flow, no output
<%= Outputs the value into the template (HTML escaped)
<%- Outputs the unescaped value into the template
如果将<%=
呈现一些包含包含 HTML 代码的字符串的变量,它不会呈现该 HTML 代码,而是将其呈现为文本以避免跨站点脚本攻击。
使用减号 ( <%-
) 可以避免这种情况,并真正呈现 HTML 代码。
1)选项一:ejs 文件正在导入一个名为“noob”的变量,该变量包含例如 req.body 值。
<p><%= noob %></p>
2)选项二:一个ejs文件导入一个名为“myPartial.ejs”的部分模板,它位于“partials”文件夹中。
<p><%- include("./partials/myPartial") %></p>
3)选项三:一个ejs文件正在使用javascript代码:
<p>
<% while (i < 10) { %>
myVar += "The number is " + i;
i++;
<% } %>
</p>