[英]nunjucks: Template not found
试图渲染一个 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);
}
不知道这里有什么问题。
我遇到了同样的问题,我的解决方案是使用路径模块:
const njk = require('nunjucks');
return njk.render(path.resolve(__dirname, '../views/email/' + 'email' + '.html'), articles);
我有同样的问题。 我在文档中找到了这个:
在节点中,“视图”将是相对于当前工作目录的路径。
如果您在根目录运行节点服务器,则模板路径将为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
目录运行服务器,则找不到模板。
遇到同样的问题,如果有帮助,试试这个。 如果您使用的是 express 并且有一个views
文件夹:
来自nunjucks
文档
var app = express();
nunjucks.configure('views', {
autoescape: true,
express: app
});
您可以使用 nodejs 的__dirname
为您解析路径
nunjucks.configure(__dirname + '/views')...
在我的例子中,nunjucks 模板(位于 src 下)不包含在 build 文件夹中。 我的nest-cli.json 文件中的这样一个配置解决了我的问题:
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"assets": [
"**/*.njk"
]
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.