Node.js Express NGINX: Les chemins des fichiers statiques sont interrompus avec la division des noms. proxy_pass

Donc, j'ai appliqué mon serveur dans

domain.com:3333

Mais vient de changer à

domain.com/nodeapp

Utilisation du serveur en amont et proxy dans ma configuration nginx. La redirection fonctionne bien, mais maintenant des liens vers des fichiers statiques utilisés par mon index.html (/styles/style.css & socket.io/socket.io.ks), Ne travaillez pas, et tout ce qui est affiché n'est pas traité html.

De 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')));

De index.html

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

De ... / nginx / sites-enabled / default

upstream nodeapp{
server localhost:3333 fail_timeout=0;
}

server{
....

location /nodeapp{
proxy_pass [url=http://nodeapp;]http://nodeapp;[/url]
}

....
}

Comment puis-je restaurer le lien?

Notez que dans mon index.js Avant le commutateur, la première ligne montrée était

app.get('/', function(req,res){
Invité:

Agathe

Confirmation de:

Donc, c'était assez difficile à comprendre, mais il est facile de la douleur.

location /socket.io {
proxy_pass [url=http://nodeapp;]http://nodeapp;[/url]
}

location /styles {
proxy_pass [url=http://nodeapp;]http://nodeapp;[/url]
}

Les chemins référencés index.html, Doit être installé comme des emplacements dans la configuration nginx, Quel prox_pass conduit à un serveur de nœuds.

Hannah

Confirmation de:

Ajoutez la ligne oblique finale à votre emplacement et à l'objectif proxy_pass Et laissez l'original index.js intacte. Cependant, vos liens doivent indiquer / nodeapp / {something} dans index.html.

location /nodeapp/ {
proxy_pass [url=http://nodeapp/;]http://nodeapp/;[/url]
}

Pour répondre aux questions, connectez-vous ou registre