0

NodeJS 用の Express 4.0 および Express3-handlebars ライブラリを使用しています。

ここに構成があります

app.set('views', path.join(__dirname, 'views/'));
app.engine('hbs', hbs({defaultLayout: 'main', extname: '.hbs'}));
app.set('view engine', 'hbs');

contact.html はビュー ディレクトリにあります。

app.get('/', function(req, res) {
 res.render("contact");
});

これは私が得るエラーです:

Error: Failed to lookup view "contact" in views directory "/Users/max23/Desktop/Node/views/"

私はそれを無駄に修正しようとして1時間以上費やしました. コードのどこが間違っていますか?

4

3 に答える 3

0

Handlebars テンプレート ライブラリを使用しているため、ビューには .html ではなく .hbs 拡張子が必要です。contact.html を contact.hbs に変更し、それをすべてのテンプレートに対して行います。また、この行を変更します

app.engine('hbs', hbs({defaultLayout: 'main.hbs', extname: '.hbs'}));
于 2015-06-09T17:37:24.950 に答える
0

ビュー システムとしてhbsを使用しているため、ビュー ファイルには .hbs 拡張子を使用する必要があります。ビューは HTML であり、 contact.hbsを探しているため、ビューの検索に失敗します。

個人的にはハンドルバー ライブラリの経験はあまりありませんが、contact.html 拡張子を .hbs に変更して、もう一度試してみることをお勧めします。

于 2015-06-09T17:35:04.773 に答える
0

設定ビュー パスに問題があります。ラインを変えてみる

app.set('views', path.join(__dirname, 'views/'));

app.set('views', path.join(__dirname, '/views'));

解決しない場合は、フォルダー構造を表示します。

于 2015-06-09T17:40:14.527 に答える