expressjs - 不从视图配置发送文件

时间:2014-07-15 10:17:54

标签: node.js express pug

在我的节点应用程序中,我配置了views文件夹,稍后我只是单独传递html名称。现在html文件需要从使用视图config + html文件加载。 (我错了!)

但它没有用。有人给我这个建议吗?

这是我的代码:

var express = require('express'),
    http = require('http'),
    jade = require('jade'),
    app = express();

app.set('view engine', 'jade');
app.set('views', __dirname + '/views'); // i configured the path so i am passing file name alone on get.

app.get('/', function(req,res){
    res.sendfile('index.html'); //it's not working
    res.sendfile('views/index.html') //it works
});

http.createServer(app).listen(3000, function () {
  console.log('Express server listening on port ');
});

提前致谢

2 个答案:

答案 0 :(得分:2)

您似乎对视图引擎的含义存在误解。视图引擎采用一些非HTML代码,并将其转换为HTML。在这里,您将其设置为使用jade

视图引擎仅适用于res.render()功能。 res.sendfile()仅从当前目录发送文件,而不是视图目录。

答案 1 :(得分:0)

如果您想提供一些express HTML文件,请使用static。您可以直接将这些文件放在public文件夹中。

当服务器收到GET /次请求时,它会搜索/public/index.html服务作为响应。您不必为router添加/

另外,如果你想使用一些template views,那么你必须使用一些视图引擎。