【问题标题】:How to handle relative paths in node.js / express?如何处理 node.js / express 中的相对路径?
【发布时间】:2012-07-07 22:22:46
【问题描述】:

我在 node.js 和 express 中编写了一个网站。现在我将 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');
});

?

【问题讨论】:

  • app.use('/app', app.router); 可以解决问题。
  • 它确实可以解决问题,尽管我没有在代理后面运行。
  • 代理应该无关紧要,只要它不改变路径。
  • @RyanOlds 您的评论应该是公认的答案!
  • 是否有机会获得关于app.use('/app', app.router); 如何适合上述示例的完整代码块?

标签: node.js express lighttpd


【解决方案1】:

正如 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”。

【讨论】:

    猜你喜欢
    • 2015-03-02
    • 2012-09-23
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    相关资源
    最近更新 更多