node.js + express:`sendfile`到Ajax请求给出404

时间:2013-04-22 07:33:17

标签: jquery ajax node.js express

节点菜鸟在这里。 :)我正在使用代码

发出Ajax请求
var path = "/path/to/file.html";

$.get(path, function(data) {
    $("#post").html(data);
});

在服务器端,用

回复
app.use(express.directory(__dirname + '/public'));

app.get('/path/*', function(req, res) {
    var is_ajax_request = req.xhr;
    if(is_ajax_request)
        res.sendfile(req.path);
    else
        res.sendfile('public/index.html');
});

实际文件位于public/path/to/file.html。出于某种原因,Ajax给了我错误

GET http://localhost:3000/path/to/file.html 404 (Not Found)

即使路径肯定是正确的。实际上,如果我删除整个app.get函数,它会发现文件没问题。还有另一种方法我应该响应Ajax请求吗?

2 个答案:

答案 0 :(得分:1)

我认为你这里有路径混乱。

在执行console.log之前,您是否尝试sendFile路径?这应该很快就会证实这不仅仅是那么简单。

您似乎需要使用res.sendfile('public/' + req.path)

答案 1 :(得分:0)

试试这个:

 res.sendfile(__dirname + '/public/index.html');

您还可以参考Render raw HTMLRender basic HTML view?