index.html
サブディレクトリを静的ファイルとして提供したいです/media
。インデックス ファイルは、/index.html
と/
URL の両方で提供される必要があります。
私は持っている
web_server.use("/media", express.static(__dirname + '/media'));
web_server.use("/", express.static(__dirname));
しかし、2 行目は 全体 ( と だけでなく、 内のすべてのファイルを含む) を提供しているようですが__dirname
、これは望ましくありません。index.html
media
私も試してみました
web_server.use("/", express.static(__dirname + '/index.html'));
しかし、ベース URL にアクセスすると(double component)/
へのリクエストが発生し、当然失敗します。web_server/index.html/index.html
index.html
何か案は?
ちなみに、Express でこのトピック (static()
およびそのパラメータ) に関するドキュメントがまったく見つかりませんでした... イライラします。ドキュメント リンクも歓迎します。
ベストアンサー1
この設定をしている場合
/app
/public/index.html
/media
これであなたが望んでいたものが手に入るはずです
var express = require('express');
//var server = express.createServer();
// express.createServer() is deprecated.
var server = express(); // better instead
server.configure(function(){
server.use('/media', express.static(__dirname + '/media'));
server.use(express.static(__dirname + '/public'));
});
server.listen(3000);
秘訣は、この行を最後の手段として残しておくことだ
server.use(express.static(__dirname + '/public'));
ドキュメントに関しては、Express は connect ミドルウェアを使用しているため、connect ソース コードを直接確認する方が簡単だとわかりました。
たとえば、この行は index.html がサポートされていることを示していますhttps://github.com/senchalabs/connect/blob/2.3.3/lib/middleware/static.js#L140