Udostępnianie plików statycznych z iisnode za pomocą URL Rewrite
Używam reguły Rewrite w moim pliku web.config, aby aplikacja węzła uruchomiona w issnode wskazywała na mój plik server.js. myapp / * wskazuje na server.js.
<rule name="myapp" enabled="true">
<match url="myapp/*" />
<action type="Rewrite" url="server.js" />
</rule>
To działa świetnie www.mywebsite.com/myapp/ ładuje uruchomioną aplikację. Chciałem mieć przekierowanie z katalogu głównego strony, więc www.mywebsite.com/ uruchomi moją aplikację. Zmieniłem więc plik web.config
<rule name="myapp" enabled="true">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>
Więc to uruchamia server.js i obsługuje mój statyczny plik html. Jedynym problemem jest odwoływanie się do jakichkolwiek zewnętrznych plików z mojego pliku html (css, js, images itp.). Używam tego do obsługi plików statycznych
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;
Moje pytanie brzmi: jak wskazać root mojego węzła app / server, aby obsługiwał statyczne pliki.
Dzięki
Jono