Почему представления не идентифицируются при включении его в файл .ejs? - PullRequest
2 голосов
/ 05 июля 2019

Это моя структура папок

Folder Structure

Я включил мои файлы header.ejs и footer.ejs так:
<% include views / partials / header%> и <% include views / partials / footer%>

, но отображается следующая ошибка:
Ошибка: не удалось найти включаемый файл "views / partials / header"

, но когда я пишу

<%, включают partials / header%> и <% include partials / footer%>

Он находит файл и все работает нормально.

Также: <% include / partials / header%> не работает

В чем здесь проблема и почему?

Просьба поделиться любой ссылкой / ресурсом или любой новой концепцией, касающейся этого, которую необходимо понять :)

Ответы [ 2 ]

1 голос
/ 06 июля 2019

В вашем app.js может быть это

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

Таким образом, эти строки устанавливают view engine на ejs, а также устанавливают в папке просмотра ваших приложений что-то вроде

/Users/Usama/Projects/YelpCamp/views

Теперь ваше приложение знает, что это за папка видов или откуда их визуализировать

Так что в любых файлах представлений вы можете напрямую использовать

<% includepartials / header%> и <% включают partials / footer%>

без необходимости /views/partials/footer или если вы добавите этот Node.js ищет

/Users/Usama/Projects/YelpCamp/views/views/partials/footer

И вот почему вы получаете сообщение об ошибке

Ошибка: не удалось найти включаемый файл "views / partials / header"

И во втором случае <% include / partials / header%> из-за / он просматривает корневую папку.

1 голос
/ 05 июля 2019

В вашем первом случае views/partials/header просто не используйте представления, так как это по умолчанию, а во втором случае /partials/header это взгляд из корня.Так что просто используйте partials/header

...