Как включить содержимое в EJS? - PullRequest
0 голосов
/ 04 октября 2018

У меня проблемы с чем-то, что (я думаю) должно быть простым.Мое веб-приложение имеет формат Node.js с express и ejs.

. Я содержит такой код (в данном случае очень классический) в index.js:

var app = express();

app.use('/public', express.static(path.join(__dirname, '/public')));
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

Теперь вот проблема, которая у меня есть.

Среди всех моих файлов .ejs некоторым случается, что один и тот же код (написанный мной).Чтобы избежать повторения, я хочу поместить этот код в отдельный файл, а затем включить его при необходимости, но я не могу найти правильный способ сделать это.Я поместил код в файл с именем Utils.ejs (в папке partials), затем использовал это:

<% include ../partials/Utils.ejs %>

, но он не работает.Затем я искал в сети и попробовал несколько вариантов, но не нашел ничего работающего.

Кто-нибудь знает, как я могу это сделать?

Для получения информации о версиях, вот что у меня есть в моемфайл package.json:

"ejs": "^2.5.7",
"express": "~4.11.x",
"node": ">=4.3"

enter image description here

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

удалите ".." и ".ejs", также убедитесь, что "/ partials / Utils /" находится в общей папке

<% include /partials/Utils %>
0 голосов
/ 04 октября 2018

здесь, в этой строке

app.set('views', __dirname + '/views');

сделать это

app.set('views', __dirname + '/views/pages/');

таким образом, он будет работать нормально, вы можете получить доступ ко всемпросматривать страницы (views/pages/) напрямую, а ваши частичные просмотры (views/partials/) также доступны из папки страниц.

0 голосов
/ 04 октября 2018

Не включать расширение файла при импорте партиалов

Удалите .ejs из <% include ../partials/Utils.ejs %> и попробуйте

...