【问题标题】:How can I implement virtual directories with node.js and express?如何使用 node.js 和 express 实现虚拟目录?
【发布时间】:2014-09-26 18:33:06
【问题描述】:

我想使用 express 静态服务器配置来实现静态服务器:

app.configure(function() {
    app.use(express.static(__dirname + '/public'));
});

但我想将 URL http://myhost/url1 映射到目录 C:\dirA\dirBhttp://myhost/url2 映射到目录 C:\dirC

如何使用 express.static 实现?

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    这应该适合你:

    var serveStatic = require( "serve-static" );
    app.use('/url1', serveStatic('c:\\dirA\\dirB'));
    app.use('/url2', serveStatic('C:\\dirC'));
    

    查看app.use() 的文档。

    【讨论】:

    • 这是一个比公认的更简单、更有效的答案。
    【解决方案2】:

    根据您计划以这种方式映射的目录数量,您可以简单地为public 文件夹中的这些目录创建符号链接。

    在 Windows 中:

    mklink /D c:\dirA\dirB public\url1
    

    在 Linux 或 OSX 中:

    ln -s /dirA/dirB public/url1
    

    然后您的静态资产服务器应该透明地从这些目录中提供服务(我从未在 Windows 上测试过,但我不明白为什么它不起作用)。

    或者,如果您想包含某种动态路由,您可以编写自己的中间件来替换 express.static,实际上是 connect.static。看看connect source 中的static.js,看看它是如何实现的,编写自己的变体应该相当简单。

    【讨论】:

      猜你喜欢
      • 2020-07-26
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多