由于类声明,EJS 无法呈现页面

问题描述

<header class="main-header">
<nav class="main-header__nav">
    <ul class="main-header__item-list">
        <li class="main-header__item"><a class="<%= path === '/' ? 'active' : '' %>" href="/">Shop</a></li>
        <li class="main-header__item"><a class="<%= path === '/admin/add-product' ? 'active' : '' %>" href="/admin/add-product">Add Product</a></li>
    </ul>
</nav>

当我尝试在 node js 应用程序中呈现页面时,出现错误。说有错误

我不太习惯编写 ejs,但是当我删除 navigation.ejs 中的 class="<%= path === '/' ? 'active' : '' %>" 时,它似乎可以工作

enter image description here

错误图片

解决方法

使用 <%- include('RELATIVE/PATH/TO/FILE'); %> 将 EJS 部分嵌入到另一个文件中。

  • 连字符 <%- 而不是 <% 告诉 EJS 呈现原始 HTML。
  • 部分的路径是相对于当前文件的。
  • 并在包含的末尾使用 ;

这是一个例子...

<!DOCTYPE html>
<html lang="en">
<head>
    <%- include('../partials/head'); %>
</head>
<body class="container">

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

<main>
    <div class="jumbotron">
        <h1>This is great</h1>
        <p>Welcome to templating using EJS</p>
    </div>
</main>

<footer>
    <%- include('../partials/footer'); %>
</footer>

</body>
</html>