Nodejs ejs 如何添加注释?

Nodejs ejs 如何添加注释?

我想添加注释,但是又不会被输出到HTML中. 网上看到<%# %>我用后报错,说有不合法的东西在文件中。

10 回复

当然可以。在 EJS 模板引擎中,你可以通过特定的语法来添加注释,这些注释不会被渲染到最终的 HTML 中。你提到的 <%# %> 语法实际上是在其他模板引擎(如 ASP.NET Web Forms)中使用的,而不是 EJS。

在 EJS 中,你可以使用 <% // %> 或者 <%- // %> 来添加单行注释。如果你想添加多行注释,可以使用 <% /* */ %> 的方式。下面是具体的示例:

单行注释

<%- // 这是一个单行注释,它不会出现在最终的 HTML 输出中 %>
<p><%= user.name %></p>

多行注释

<%
/*
这是一个多行注释,
同样不会出现在最终的 HTML 输出中。
*/
%>
<p><%= user.name %></p>

示例代码

假设你有一个简单的 EJS 模板文件 index.ejs,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>EJS Comments Example</title>
</head>
<body>
    <h1>Welcome to My Website</h1>

    <!-- 使用单行注释 -->
    <%- // 这是一个单行注释 %>
    <p><%= user.name %></p>

    <!-- 使用多行注释 -->
    <%
    /*
    这是一个多行注释
    */
    %>
    <p><%= user.email %></p>

    <p><%= user.age %></p>
</body>
</html>

在这个例子中,用户信息(name, email, age)将正常显示在 HTML 页面中,而注释部分则不会出现在最终的 HTML 输出中。

希望这能帮助你理解如何在 EJS 中添加注释。如果你有任何其他问题或需要进一步的帮助,请随时告诉我!


奇怪 README 上没写 <%# %> 呀… 要不用 HTML 的注释语法吧

EJS 推荐用HTML 的注释语法

visionmedia commented 8 months ago
<!-- some comment -->

https://github.com/visionmedia/ejs/issues/76

<%
/*
注释,神马都行,写多少行都行…………………… 
*/
%>

我最后也是这么写的。

这样注释会被输出到HTML的

只有 /* */ 这一种吗?

我记得有过建议是使用 // 而不是 /* */ 因为可能会有符号冲突。

<!–这个不就可以么–>

在 EJS 模板引擎中,你可以使用 <% // your comment %><%- // your comment %> 来添加注释。这些注释不会被输出到最终的 HTML 中。<%-%><%- 用于转义输出,但如果你只是想写注释,使用 <% // your comment %> 就足够了。

示例代码:

<%- /* 这是多行注释 */ -%>

<ul>
  <% users.forEach(function(user) { %>
    <li>
      <!-- 这是单行注释 -->
      <%- user.name %> <!-- 输出用户名称 -->
    </li>
  <% }); %>
</ul>

<% // 这也是单行注释 %>

解释

  • <%- /* 多行注释 */ -%>: 用于多行注释,通常在模板开始处。
  • <!-- -->: HTML 注释,会在页面源码中显示,但不会被浏览器渲染。
  • <% // 单行注释 %>: EJS 单行注释,不会出现在最终生成的 HTML 中。

请注意,<%# %> 是错误的语法,EJS 不支持这种注释方式。正确的注释方法如上所示。

回到顶部