nunjucks: Template not found

匿名 (未验证) 提交于 2019-12-03 01:39:01

问题:

Trying to render a nunjucks template but getting 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); } 

No idea what's wrong here.

回答1:

I had the same issue my solution was using path module:

const njk = require('nunjucks');  return njk.render(path.resolve(__dirname, '../views/email/' + 'email' + '.html'), articles); 


回答2:

Had the same issue, try this if it helps. If you're using express and you have a views folder:

From nunjucks docs

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

You can use nodejs' __dirname to resolve the path for you as

nunjucks.configure(__dirname + '/views')... 


回答3:

I had same issue. I found this at the documentation:

In node, 'views' would be a path relative to the current working directory.

If you run the node server at the root directory, the template path would be server/views.

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

In my case, the server script is in public directory.

So, when i run the server from the root directory, the nunjucks configuration will look like this:

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

It works.

But if I run the server from the public directory, the tempate will not found.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!