nunjucks: шаблон не найден

node.js nunjucks

5393 просмотра

3 ответа

Попытка визуализировать шаблон nunjucks, но получить Error: template not found: email.html.

server/
  views/
     email/
       email.html
  workers/
      email.worker.js
//email.worker.js
function createMessage(articles) {
   console.log(__dirname) // /<path>/server/workers

   nunjucks.configure('../views/email/');
   return nunjucks.render('email.html', articles);
}

Понятия не имею, что здесь не так.

Автор: Sayem Источник Размещён: 08.11.2019 10:55

Ответы (3)


4 плюса

У меня была та же самая проблема, мое решение использовало модуль пути:

const njk = require('nunjucks');

return njk.render(path.resolve(__dirname, '../views/email/' + 'email' + '.html'), articles);
Автор: Hector Matias Gonzalez Размещён: 25.01.2017 02:43

3 плюса

Была такая же проблема, попробуйте это, если это поможет. Если вы используете экспресс и у вас есть viewsпапка:

Из nunjucksдокументов

var app = express();

nunjucks.configure('views', {
    autoescape: true,
    express: app
});

Вы можете использовать nodejs, __dirnameчтобы определить путь для вас, как

nunjucks.configure(__dirname + '/views')...
Автор: 1565986223 Размещён: 30.10.2018 07:32

2 плюса

У меня была такая же проблема. Я нашел это в документации :

В узле 'views' - это путь относительно текущего рабочего каталога.

Если вы запустите сервер узла в корневом каталоге, путь к шаблону будет таким server/views.

 nunjucks.configure('server/views/email/');
 return nunjucks.render('email.html', articles);

В моем случае серверный скрипт находится в publicкаталоге.

введите описание изображения здесь

Итак, когда я запускаю сервер из корневого каталога, конфигурация nunjucks будет выглядеть так:

 nunjucks.configure('src/templates');
 return nunjucks.render('index.html', { name : 'Dian' });

Оно работает.

Но если я запускаю сервер из publicкаталога, шаблон не будет найден.

Автор: Dian Размещён: 01.10.2018 04:16
Вопросы из категории :
32x32