issnodeで実行されているノードアプリのweb.configファイルでRewriteルールを使用して、server.jsファイルをポイントしています。myapp/*はserver.jsを指します。
<rule name="myapp" enabled="true">
<match url="myapp/*" />
<action type="Rewrite" url="server.js" />
</rule>
これはうまく機能していますwww.mywebsite.com/myapp/は私のアプリを実行するためにロードします。私が望んでいたのは、www.mywebsite.com /が私のアプリを実行するように、Webサイトのルートからリダイレクトすることでした。そこで、web.configファイルを変更しました
<rule name="myapp" enabled="true">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>
つまり、これはserver.jsを実行し、静的なhtmlファイルを提供しています。唯一の問題は、htmlファイルから外部ファイル(css、js、画像など)を参照することです。リクエストごとに500を取得するだけです。これを使用して静的ファイルを提供しています
var libpath = require('path');
var _path = "."; <-- This seems to be the problem
var uri = url.parse(req.url).pathname;
var filename = libpath.join(_path, uri);
fs.readFile(filename, "binary", function (err, file) {
if (err) {
res.writeHead(500, {
"Content-Type": "text/plain"
});
res.write(err + "\n");
res.end();
return;
}
var type = mime.lookup(filename);
res.writeHead(200, {
"Content-Type": type
});
res.write(file, "binary");
res.end();
});
break;
だから私の質問は、静的ファイルを提供するためにノードアプリ/サーバーのルートを指す方法です。
ありがとう
城野