2012-01-11 24 views
16

Node.js. ile biraz oynuyorum. Yakın zamanda Express ile çalışmaya başladım ve temel bir uygulama kuruyordum. Görünüm çubuğumda motorum olarak gidon kullanmak istedim, ama bir duvara çarpıyorum - görünüm "index.html" göremedi "view.html"NodeJS + Express + Handlebars - "index.html" görünümü bulamadı

Ben app.js ile aynı dizinde index.html var ve bu yüzden Aşağıdaki kod, index.html dosyasını bulmakta sorun yaşamayacaktı ...

Çevremde arama yaptım, ancak yeşimden başka hiçbir şey için kapsamlı örnekler göründüğü anlaşılıyor ... Herkes bu kombinasyonla ilgili deneyime sahip mi?

Şimdiden teşekkürler!

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); 

Güncelleme:

Ben eksikti: my config

app.set('views', __dirname + '/'); 
app.register('.html', require('handlebars')); 

... o belirtir gibi '.html' sicili oldukça önemli olduğu gibi görünüyor .html ...

Umarız bu, birilerine yardımcı olur ...

Ben SO noob'um, 7 saat boyunca kendi sorumu yanıtlayamıyorum, ancak tüm çalışma örneğine gereksinim duyuyorsa, yarın gönderebilirim ...

+4

"Ford Prefect" – fent

+1

Dosyalarınızı .html yerine .handml'leri adlandırmayı düşünebilirsiniz, bunun nedeni düz bir html dosyası olmamasıdır. Yakında [.hbs] (https://github.com/wycats/handlebars.js/issues/174) işe yarayabilir mi? – MyGGaN

cevap

17

Varsayılan olarak, bir klasörde görünecektir komut dosyasının bulunduğu dizinden views denir. Farklı bir dir kullanırsanız, bunu belirtmeniz gerekir.

app.set('views', __dirname + '/views'); 

Ekspres ayrıca bunu, ona bakıyor tam olarak nerede olduğunu bilmek yardımcı olmalıdır görünümü, bulmaya çalışan yerler hakkında daha fazla bilgi söylemek gerekir.

+0

Tam olarak. Hakikat, bu sonuca benim için iki adımda geldi - hat 1 ve daha sonra Update 2 satırında ... İlk karşılaşma beni yönlendiren hat 1, hangi beni karşı karşıya Hata: 'html' modülü bulunamıyor 'html' Hikaye gittikçe çizgi 2 çözüldü :) Umarım folyum birine yardım eder. – mattezell

İlgili konular