如何处理node.js / express中的相对路径?

时间:2012-07-07 23:31:23

标签: node.js express lighttpd

我在node.js写了一个网站并表达了。现在我配置lighttpd以使用node.js服务器和子目录:

$HTTP["url"] =~ "^/app/" {
  proxy.server  = ( "" => ( (
                              "host" => "127.0.0.1",
                              "port" => 3000
                            ) )
                  )
}

当我打开http://localhost/app/时,我收到错误404,因为我写了这样的内容:

app.get('/', function (req, res){
  res.render('index');
});

有没有更好的方法来修改这些行,如:

var relPath = '/app';

app.get(relPath + '/', function (req, res){
  res.render('index');
});

1 个答案:

答案 0 :(得分:4)

正如Ryan评论的解决方案是:

app.use('/app', app.router);

如果您使用例如express.static或express.favicon你必须告诉app.use路径:

app.use('/app', express.favicon(__dirname + '/public/images/favicon.ico'));
app.use('/app', express.static(__dirname + '/public'));

请记住在您在html中设置的每个内部链接之前写'/ app'。