Không tìm thấy một phần tệp ejs

Sep 16 2020

Không thể tìm thấy Ejs partials | NODE JS

Không thể tìm thấy tệp bao gồm "partials / header"

Vì lý do nào đó, chương trình NODE JS của tôi không thể tìm thấy tệp .ejs mà tôi đang cố đưa vào tệp của mình.

Hệ thống tập tin

Đường quan điểm của tôi trông giống như

lượt xem
    ├─── trang
    │ index.ejs
    │
    └─── các bên
            footer.ejs
            header.ejs

Mã nguồn

Index.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 Tôi đang định thêm navbar sau

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

NHẬT KÝ LỖI

Nhật ký đầy đủ về lỗi được cung cấp bên dưới

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>

Trả lời

1 SagarKarki Sep 16 2020 at 07:30

Hãy thử thêm ./partials/header.
Bạn cũng nên đặt công cụ chế độ xem trong tệp main.js của mình app.set('view engine','ejs'). Sau khi cài đặt ejsgói.

PsiKai Sep 16 2020 at 07:34

Bạn không cần phải có dấu chấm phẩy sau các <%- -%>thẻ của mình . Thay đổi thẻ ejs của bạn để đưa -vào cả hai thẻ. Ngoài ra, hãy kiểm tra xem tệp máy chủ của bạn có app.set('view engine', 'ejs');Cuối cùng không, đảm bảo rằng tệp máy chủ của bạn ở cùng cấp phân cấp với viewsthư mục.