【问题标题】:Partial ejs file not found未找到部分 ejs 文件
【发布时间】:2021-01-02 11:57:04
【问题描述】:

找不到 Ejs 部分 |节点JS

找不到包含文件“partials/header”

由于某种原因,我的 NODE JS 程序找不到我试图包含在我的文件中的 .ejs 文件。

文件系统

我的视图路径看起来像

意见 ├───页面 │ index.ejs │ └────部分 页脚.ejs 头文件.ejs

源代码

索引.ejs

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>News Node App</title>
    <%- include("partials/header"); %>
  </head>
  <body>
      <div class="d-flex">
          
            <%for (let i =0;i<articles.length;i++){ let currNews = articles[i]%>
                <li>
                <div class="news-cars">
                    <%=currNews.title%>
                </div>
                </li>
            <%}%>
          </ol>
      </div> 
  </body>
</html>

header.ejs 我打算稍后添加导航栏

<link
  rel="stylesheet"
  href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
  integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z"
  crossorigin="anonymous"
/>

错误日志

错误的完整日志如下所示

Error: D:\node\blog-app\views\page\index.ejs:7
    5|     <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    6|     <title>News Node App</title>

    7|     <%- include("partials/header"); %>

    8|   </head>

    9|   <body>

    10|       <div class="d-flex">


Could not find the include file "partials/header"<br>
    at getIncludePath (D:\node\blog-app\node_modules\ejs\lib\ejs.js:183:13)<br>
    at includeFile (D:\node\blog-app\node_modules\ejs\lib\ejs.js:309:19)<br>
    at include (D:\node\blog-app\node_modules\ejs\lib\ejs.js:689:16)<br>
    at eval (D:\node\blog-app\views\page\index.ejs:10:17)<br>
    at index (D:\node\blog-app\node_modules\ejs\lib\ejs.js:691:17)<br>
    at tryHandleCache (D:\node\blog-app\node_modules\ejs\lib\ejs.js:272:36)<br>
    at View.exports.renderFile [as engine] (D:\node\blog-app\node_modules\ejs\lib\ejs.js:489:10)<br>
    at View.render (D:\node\blog-app\node_modules\express\lib\view.js:135:8)<br>
    at tryRender (D:\node\blog-app\node_modules\express\lib\application.js:640:10)<br>
    at Function.render (D:\node\blog-app\node_modules\express\lib\application.js:592:3)<br>
    at ServerResponse.render (D:\node\blog-app\node_modules\express\lib\response.js:1012:7)<br>
    at D:\node\blog-app\controllers\news-controller.js:10:25<br>
    at processTicksAndRejections (internal/process/task_queues.js:97:5)<br>

【问题讨论】:

  • 请注意,文件路径是相对于服务器代码解析的(不是view 路径集) - 参见this answer,另见this question
  • 是的,兄弟。这确实是错误。

标签: javascript node.js ejs backend partials


【解决方案1】:

尝试添加./partials/header
您还应该在 main.js 文件 app.set('view engine','ejs') 中设置视图引擎。安装ejs 包后。

【讨论】:

    【解决方案2】:

    &lt;%- -%&gt; 标记后不需要分号。更改您的 ejs 标签以在两个标签上包含 -。另外,检查您的服务器文件是否有app.set('view engine', 'ejs'); 最后,确保您的服务器文件与views 文件夹位于同一层级。

    【讨论】:

      猜你喜欢
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      相关资源
      最近更新 更多