【问题标题】:restify: why serving working directory is not possible?restify:为什么无法提供工作目录?
【发布时间】:2013-12-05 12:09:23
【问题描述】:

我有一个带有 node.js 的 restify 服务器,用于进行一些开发和测试,为此,我使用了 serveStatic。

我想知道为什么我不能使用以下配置而不会出现 403 错误:

server.get(/.*/, restify.serveStatic({
  directory: '.',
  default: "index.html"
}));

虽然如果我链接到我当前的目录:

ln -s . serverDir

这将起作用:

server.get(/.*/, restify.serveStatic({
  directory: './serverDir',
  default: "index.html"
}));

这是什么原因?安全 ?漏洞 ?软件或网络限制?

关于提供静态文件有什么我应该知道或阅读的吗?

【问题讨论】:

    标签: node.js static restify


    【解决方案1】:

    你能不能用 __dirname 代替 '.'表示当前目录?

    server.get(/.*/, restify.serveStatic({
      directory: __dirname,
      default: "index.html"
    }));
    

    【讨论】:

    • '.'不是提供当前目录的推荐方式。我猜 restify 没有正确解析路径。
    • 我也试过“./”,但没用。所以我很奇怪“./serverDir”的工作原理
    • 问题是@github.com/mcavage/node-restify/blob/master/lib/plugins/…,opts.directory 没有被解析,只是标准化,因此报错。
    猜你喜欢
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 2010-10-07
    • 2017-06-04
    相关资源
    最近更新 更多