templates - NodeJS + Express + Handlebars - 找不到 View "index.html"

标签 templates node.js express handlebars.js

我一直在玩 Node.js。我最近开始玩 Express 并且一直在设置一个基本的应用程序。我想使用 Handlebars 作为我的 View 模板引擎,但我碰壁了 - 找不到 View “index.html”

我的 index.html 与 app.js 位于同一目录中,因此我认为下面的代码定位 index.html 没有问题...

我找遍了,但似乎除了 Jade 之外的任何东西的综合例子都很少......有人有这个组合的经验吗?

提前致谢!

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 的 Handlebars 关联...

我希望这对某人有所帮助...

因为我是个菜鸟,我无法在 7 小时内回答自己的问题,但如果有人需要完整的工作示例,我可以明天发布...

最佳答案

默认情况下,它会从脚本所在的目录中查找名为 views 的文件夹。如果您使用不同的目录,则必须指定它。

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

Express 还应该告诉你更多关于它试图在哪里找到 View 的信息,这应该可以帮助你准确地知道它在寻找什么。

关于templates - NodeJS + Express + Handlebars - 找不到 View "index.html",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8814437/

相关文章:

c++ - 如何根据其他参数设置嵌套模板类实例化作为默认模板参数

c++ - 从包中获取所有子包

javascript - Electron 架构 API 调用

javascript - Mongoose - 使用嵌套模型更新插入文档

javascript - Node.js 客户端无法看到来自 Express 服务器的数据

c++ - 部分模板实例化

c++ - 使用模板时:错误:没有匹配的构造函数用于初始化

javascript - Websocket 未向所有客户端发送数据

node.js - Hapijs - 服务器重新启动时 HttpOnly cookie 消失

ajax - Express 中 'delete' 之后重定向