我一直在玩Node.js.我最近开始玩Express并且已经开始设置一个基本的应用程序。我想使用Handlebars作为我的视图模板引擎,但是我遇到了墙 - 未能找到视图“index.html”
我将index.html放在与app.js相同的目录中,所以我认为下面的代码在定位index.html时没有问题......
我一直在寻找,但看起来除了玉之外的任何事物的全面例子都很罕见......任何人都有这种组合的经验吗?
提前致谢!
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);
更新
我失踪了:
app.set('views', __dirname + '/');
app.register('.html', require('handlebars'));
在我的配置中...看起来'.html'的注册表非常重要,因为它指定了.html的把手关联......
我希望这有助于某人...
因为我是一个SO菜鸟,我不能回答我自己的问题7小时,但如果有人需要完整的工作示例,我明天可以发帖...
答案 0 :(得分:17)
默认情况下,它会从脚本所在的目录中查找名为views
的文件夹。如果您使用其他目录,则必须指定它。
app.set('views', __dirname + '/views');
Express还应该告诉您有关它在何处尝试查找视图的更多信息,这应该可以帮助您准确了解其所在的位置。