2012-05-16 8 views
8

私は、静的なサーバーを実装するための明示静的なサーバー構成を使用したい:node.jsで仮想ディレクトリを実装して表現するにはどうすればよいですか?

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

しかし、私はディレクトリC:\dirA\dirBにURL http://myhost/url1をマッピングしたいとhttp://myhost/url2ディレクトリへC:\dirC

どのようにそれを使用して実装することができますexpress.static?

答えて

5

この方法でマップするディレクトリの数に応じて、publicフォルダ内のこれらのディレクトリのシンボリックリンクを作成するだけで済みます。 Windowsので

ln -s /dirA/dirB public/url1 

は、その後、あなたの静的な資産のサーバーは、私がWindows上でテストしたことがありません(透過的にこれらのディレクトリから仕える必要がありますが、私はしません:LinuxやOSXで

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

それがうまくいかない理由を見てください)。

また、何らかの種類の動的ルーティングを含める場合は、実際にconnect.staticのフードの下にあるexpress.staticを置き換える独自のミドルウェアを作成できます。 connect sourcestatic.jsをご覧になり、その実装方法を確認してください。独自のバリエーションを作成するのはかなり簡単です。

7

これはあなたのために働く必要があります。

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

app.use()のドキュメントを見てみましょう。

+0

これは、受け入れられたものよりはるかに簡単で効率的な答えです。 – havlock

関連する問題