私は小さなNodeJS/Expressアプリケーションを書いています。 HTMLレスポンスを送信するためにres.render()
を呼び出すときにこれが正常に動作しますpug.compile()はテンプレートファイルを見つけることができません(res.render()can)
const app = express();
app.set('view engine', 'pug');
app.set('views', __dirname + "/public/views");
app.use(express.static(__dirname + '/public/static'));
:私は、そのテンプレートエンジンとしてパグを設定
app.get('/', function getIndex(req, res){
res.render('index.pug');
});
しかし、私は小さなコンポーネントをレンダリングして、文字列でそれらを収集しようとしますか、 AJAX呼び出しに対する応答としての配列、私はそれを動作させることはできません。
const pug = require('pug');
const compile = pug.compileFile('option.pug');
これは常にError: ENOENT: no such file or directory, open 'option.pug'
になります。私はルーターの視点(つまり../../public/views/option.pug
のようなもの)へのパスを変更しようとしましたが、これも役立ちません。
なぜパスが異なって解釈されるのかわかりません。
pug.compileFile
を使用する場合、このテンプレートをどのように参照しますか?パグのソースコードから
ご迷惑をおかけしました。これは動作しますが、私はアプリケーションのこの部分を抽象化して問題を回避しました。 –