Node.js Express NGINX: ścieżki do plików statycznych są przerywane przy dzieleniu nazw proxy_pass


Tak więc uzyskałem dostęp do mojego serwera pod adresem
       domain.com:3333
ale po prostu przełączyłem go na
       domain.com/nodeapp
używając upstream i proxy w mojej konfiguracji nginx. Przekierowanie działa dobrze, ale teraz linki do plików statycznych używanych przez mój index.html (/styles/style.css & amp; socket.io/socket.io.ks) nie działają i wszystko, co jest wyświetlane, jest surowym kodem HTML.
Z index.js
app.get('/nodeapp', function(req,res){
res.sendFile(path.join(__dirname, '/views', 'index.html'));
});app.use('/styles', express.static(path.join(__dirname, '/views/styles')));

Z index.html
<link rel="stylesheet" type="text/css" href="styles/style.css">
<script src="socket.io/socket.io.js"></script>

Z .../nginx/sites-enabled/default
upstream nodeapp{
server localhost:3333 fail_timeout=0;
}server{.... location/nodeapp{
proxy_pass [url=http://nodeapp;]http://nodeapp;[/url]
}....
}

Jak mogę przywrócić łącze?
Zauważ, że w moim index.js, przed przyciskiem opcji, pierwsza pokazana linia to
       app.get('/', function(req,res){
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Więc było to trochę trudne do zrozumienia, ale boleśnie proste.
location/socket.io {
proxy_pass [url=http://nodeapp;]http://nodeapp;[/url]
}location/styles {
proxy_pass [url=http://nodeapp;]http://nodeapp;[/url]
}

Ścieżki, do których odwołuje się index.html, powinny być ustawione jako lokalizacje w konfiguracji nginx, które prox_pass prowadzi do serwera hosta.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Dodaj końcowy ukośnik do swojej lokalizacji i celu proxy_pass i pozostaw oryginalny plik index.js nietknięty. Jednak Twoje linki powinny wskazywać na/nodeapp/{coś} w index.html.
location/nodeapp/ {
proxy_pass [url=http://nodeapp/;]http://nodeapp/;[/url]
}

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się