zukucode
主にWEB関連の情報を技術メモとして発信しています。

nunjucks includeで絶対パスを指定する

nunjucksの便利な機能の1つにincludeがあります。

例えば以下のようなフォルダ構成とします。

  • partials
    • header.njk
  • A.njk
  • path1
    • B.njk
    • path2
      • C.njk

A.njk{% include 'partials/header.njk' %}を実行すると、partials/header.njkの内容が展開されます。

ファイルパスはデフォルトでは相対パスで設定されます。なのでメインとなるnjkファイルのパスによって以下のようになってしまいます。

  • partials/header.njkA.njk
  • ../partials/header.njkB.njk
  • ../../partials/header.njkC.njk

これではフォルダ構成が変わるとincludeのパスも修正しなければならないため、保守性が悪いです。

そのため、オプションで絶対パスを指定します。

gulpfile.babel.js
const option = {
  path: 'src/template'
}; //オプションを設定

// task処理一部抜粋
.pipe($.nunjucksRender(option))

上記のオプションを指定すると、どの階層のnjkファイルでもpartials/header.njkと記載できます。


関連記事