ゲーム作るくんのサイト
ゲーム作るくん
Twitter

EJS ファイルの include は絶対パスで書かないと動かない

発生した問題

こんなディレクトリ構成になってます。

./ejs/index.ejs
./ejs/list.ejs

index.ejs から list.ejs を include したいんですが、最初、以下のように書いたところ、

<%- include('list') %>

以下のようなエラーが出てしまって、

Could not find the include file "list"

こんなふうにいろいろ書き換えてみても動かず、詰まってしまったのでメモしておきます。

<%- include('./list') %>
<%- include('./list.ejs') %>
<%- include('./ejs/list') %>
<%- include('./ejs/list.ejs') %>

結論

どうやら EJS ファイルは絶対パスで書かないと動かないらしく、以下のように process.cwd() を使って絶対パスで書いたら問題なく動きました。

<%- include(process.cwd() + '/ejs/list') %>

以上。