多路径数组在 Nunjucks 中不适用于模板和部分

Array of multiple path is not working in Nunjucks for templates and partials

我正在使用这个 gulp 插件来使用 nunjucks 来简化 HTML 管理。

https://github.com/carlosl/gulp-nunjucks-render

gulp.task('default', function () {
  return gulp.src('src/templates/*.html')
    .pipe(nunjucksRender({
      path: ['src/templates/'] // String or Array
    }))
    .pipe(gulp.dest('dist'));
});

我想将我的模板和部分文件保存在不同的文件夹中,所以我尝试将其保留为路径

path: ['src/templates', 'src/partials']

但它不起作用。

Template render error: (unknown path)
  Error: template not found: partials/side_nav.nunjucks

我的设置

据我所知,问题出在您的 include 上。您已经将基本路径定义为 'src/templates''src/partials'。现在 nunchucks 正在尝试导入 src/templates/partials/side_nav.nunjucks 和之后的 src/partials/partials/side_nav.nunjucks,它们不存在。

解决方案 1

所以你必须在没有 partials 部分的情况下包含它:

{% include "side_nav.nunjucks" %}

解决方案 2

如果您想明确说明您的文件夹(模板和部分文件夹),您可以将基本路径设置为 src,并像您一样包含您的文件:

{% extends "templates/layout_with_sidenav.nunjucks" %}
...
{% include "partials/side_nav.nunjucks" %}