Nginx: impossible d’exécuter plusieurs sites en une seule URL

Dans Ma candidature, j’ai 3 sites – Interface utilisateur, Panneau d’administration et Page de démarrage.

Pour exécuter tout cela, j’ai utilisé la configuration suivante:

server { listen 8080; server_name localhost; root /home/ajit/git/univisior; location / { alias /home/ajit/git/univisior/FrontEnd/dist/; index index.html; try_files $uri $uri/ /index.html; } location /admin{ alias /home/ajit/git/univisior/admin/dist/; index index.html; try_files $uri $uri/ index.html; } location /splash { alias /home/ajit/git/univisior/Splash/dist/; index index.html; try_files $uri $uri/ /index.html; } location /api { proxy_pass http://localhost:3000/api; } } 

Le problème avec cette configuration est le suivant

  1. Quand j’ouvre le site d’administration (localhost: 8080 / admin) je reçois une erreur

VM189: 1 SyntaxError Uncaught: jeton inattendu <

mais quand j’exécute le site d’admin avec la configuration de site simple cela fonctionne bien, le nginx config est collé ci-dessous:

 server { listen 9010; server_name localhost; root /home/ajit/git/univisior/admin/dist; index index.html index.htm; location / { index index.html; try_files $uri $uri/ /index.html; } location /api { proxy_pass http://localhost:3000/api; } location /static { alias /opt/univisor; } } 
  1. Avec la page de démarrage, je ne parviens pas à obtenir des images.

Le front de l’utilisateur fonctionne bien mais je suis confronté à un problème avec admin et splash.can n’importe qui peut m’aider à sortir de ce problème.

Merci

Supprimez les directives de fuite / de vos alias:

 location / { alias /home/ajit/git/univisior/FrontEnd/dist/; index index.html; try_files $uri $uri/ /index.html; } location /admin{ # alias /home/ajit/git/univisior/admin/dist/; alias /home/ajit/git/univisior/admin/dist; # index index.html; # try_files $uri $uri/ index.html; try_files $url $uri/; } location /splash { # alias /home/ajit/git/univisior/Splash/dist/; alias /home/ajit/git/univisior/Splash/dist; # index index.html; # try_files $uri $uri/ /index.html; try_files $uri $uri/; } 

J’ai pu comprendre le problème. Le problème dans admin et la page de démarrage étaient les mêmes. Le chemin des fichiers images et scripts dans index.html a été écrit comme suit:

 logo . .   

Lorsque vous exécutez le fichier d’index avec la configuration nginx de site unique (la configuration du site d’administration ci-dessus est collée), admin et splash fonctionnent correctement. Mais lors de l’exécution des deux dans la configuration comme ça

 . . location / { alias /home/ajit/git/univisior/FrontEnd/dist/; index index.html; try_files $uri $uri/ /index.html; } location /admin{ alias /home/ajit/git/univisior/admin/dist/; index index.html; try_files $uri $uri/ index.html; } location /splash { alias /home/ajit/git/univisior/Splash/dist/; index index.html; try_files $uri $uri/ /index.html; } . . 

fait que logo recherche url localhost: 8080 / images / logo.png au lieu de localhost: 8080 / admin / images / logo.png même S’applique aux scripts car ce navigateur ne permet pas d’obtenir des scripts / images.

Pour résoudre ce problème, j’ai remplacé ../ depuis index.html pour avoir un index.html final comme celui-ci.

 logo . .