NodeJS + espresso + Handlebars - non è riuscito a localizzare vista “index.html”
-
26-10-2019 - |
Domanda
Ho giocato un po 'con Node.js. Recentemente ho iniziato a giocare con Express e sono stato la creazione di un app di base. Volevo usare Handlebars come il mio motore di template vista, ma sto colpendo un muro - non è riuscito a localizzare vista "index.html"
ho index.html nella stessa directory app.js ed e così penserei il codice qui sotto avrei alcun problema di posizionamento index.html ...
Ho cercato in giro, ma sembrerebbe che gli esempi completi di qualsiasi cosa a parte giada sono rari ... Qualcuno ha esperienza con questo combo?
Grazie in anticipo!
var express = require('express')
, app = express.createServer();
app.configure(function(){
app.set('view engine', 'handlebars');
app.set("view options", { layout: false })
});
app.get('/', function(req, res){
var data = {
name: "Ford Prefect",
home: "a small planet somewhere in the vicinity of Betelgeuse"
}
res.render('index.html', data);
});
app.listen(3000);
Aggiornamento:
mi mancava:
app.set('views', __dirname + '/');
app.register('.html', require('handlebars'));
nel mio config ... sembrerebbe che il registro dei '.html' è molto importante in quanto specifica l'associazione manubri con .html ...
Spero che questo aiuta qualcuno ...
Perché io sono un noob SO, non posso rispondere alla mia domanda per 7 ore, ma se qualcuno ha bisogno l'esempio di lavoro completo, posso pubblicare domani ...
Soluzione
By default, it will look in a folder called views
from the directory the script is. If you use a different dir you must specify it.
app.set('views', __dirname + '/views');
Express should also tell you more information about where it's trying to find the view, that should help you know exactly where it's looking.