構造:KOA-ビューnunjucks:エラー:見つからないテンプレート:マスター
|-server.js
|-views/
|-master.njk
|-index.njk
興亜・ビューの設定:
logit("Koa-views : subfolder used: /views");
var views = views('./views', { //note that I removed the __dirname to test if it was the cause
extension: 'njk',
map: {
njk: 'nunjucks'
},
options: {
helpers: {
uppercase: (str) => str.toUpperCase(),
lowercase: (str) => str.toLowerCase(),
},
}
});
koa.use(views);
index.njk
{% extends "master" %}
{% block content %}
<h1>Pretty lame content...</h1>
{% endblock %}
master.njk
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
"Master page here" => {% block content %}{% endblock %}
</body>
</html>
ログ出力は:
NodeJS server started, it is running on port 3000
Template render error: (unknown path)
Error: template not found: master
at Object.exports.prettifyError (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/lib.js:34:15)
at /srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/environment.js:489:31
at eval (eval at _compile (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/environment.js:568:24), <anonymous>:9:11)
at createTemplate (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/environment.js:213:25)
at next (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/lib.js:210:13)
at handle (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/environment.js:253:25)
at /srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/environment.js:264:21
at next (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/lib.js:207:13)
at Object.exports.asyncIter (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/lib.js:214:5)
at new_cls.getTemplate (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/environment.js:243:17)
at new_cls.root [as rootRenderFunc] (eval at _compile (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/environment.js:568:24), <anonymous>:8:5)
at new_cls.render (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/environment.js:482:15)
at new_cls.renderString (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/src/environment.js:328:21)
at Object.module.exports.renderString (/srv/NodesProjects/AnotherNodeTry/node_modules/nunjucks/index.js:80:14)
at /srv/NodesProjects/AnotherNodeTry/node_modules/consolidate/lib/consolidate.js:1174:11
at /srv/NodesProjects/AnotherNodeTry/node_modules/consolidate/lib/consolidate.js:144:5
私はすべてのファイルが777と同じユーザーをchmodしていることを確認してください。 変数を1つだけ置き換えて、レンダリング関数で渡すとしたら、機能します。しかし、含めると拡張が見えます。
私は別のバックエンドで別のプロジェクトで試したし、それが働いている - しかし、私はすべてのソースコードを通過し、それを把握するために十分ではないよ:(
私はトレースバックは、より詳細なたことを望む、何の完全なパス:(
編集 私はこれは私が
router.get('/', async function (ctx, next) {
await ctx.render('index', {test: 'Hello'})
})
編集2templaceを呼び出す方法です、忘れてしまいました私はkoaNunjucks2ライブラリを使ってみました。これは、拡張の最後に.njkを置いたときに動作します。パッケージkoa-viewsに関連している必要があります。
'VARビュー=ビュー(」./ views''非常に奇妙なコードであるあなたが本当に' views'関数をオーバーライドしたいです –
'views'機能を備えています。? [koa-view doc](https://github.com/queckezz/koa-views)を参照してください。私はGitHubでも問題をオープンしました。 – Jayd