E js отображает {} при включении частичных - PullRequest
0 голосов
/ 06 апреля 2020

Я использую эту ссылку как ссылку для создания простого ejs приложения. Структура проекта:
- просмотры
----- частичные
---------- head.e js
----- страницы
- -------- index.e js
- пакет. json
- сервер. js

сервер. js:

const express = require('express'),
app  = express();

app.set('view engine', 'ejs');
app.use(express.json());
app.use(express.static('public'));

app.get('/', (req, res) => {
    res.render('pages/index');
});

head.e js:

<title>My Awesome Site</title>

index.e js:

<!DOCTYPE html>
<html lang="en">
<head>
    <% include ../partials/head.ejs %> <!-- commenting out this line works -->
</head>
<body class="container">

<main>
    <div class="jumbotron text-center header">
        <a href="http://www.myawesomesite.org"><img src="/images/phbc_17.jpg"></a>
        <h2 class="page-header">Be Awesome!</h2>
        <p>Visit <a href="http://www.myawesomesite.org">www.myawesomesite.org</a></p>
    </div>
</main>

</body>
</html>

Индекс отображается так, как ожидается, если я не включаю в него head.ejs частичное , Но с head.ejs он отображает только {} в браузере.

Что я делаю не так?

1 Ответ

1 голос
/ 06 апреля 2020

Я видел две проблемы.

  1. Вы не импортировали ejs в файл server.ejs, поэтому импорт выполняется как

    const ejs = require('ejs');
    
  2. Ваш синтаксис ejs это ошибка, поэтому используйте следующий синтаксис

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

    , и это должно быть внутри вашего тега body

...