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.
<code> <rule name="myapp" enabled="true"> <match url="myapp/*" /> <action type="Rewrite" url="server.js" /> </rule> </code>
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
<code> <rule name="myapp" enabled="true"> <match url="/*" /> <action type="Rewrite" url="server.js" /> </rule> </code>
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
<code> 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; </code>
Moje pytanie brzmi: jak wskazać root mojego węzła app / server, aby obsługiwał statyczne pliki.
Dzięki
Jono