Puncte:0

Cum să utilizați corect conținutul fișierului cu calea virtuală folosind Nginx?

drapel in

Am o aplicație AngularJs (v1) care este construită ca o imagine Docker (cu Nginx ca server web). Are structura dedesubt

-aplicație
  --construi
    --js
      |-app.min.js
      |-login.min.js
    --stiluri
      |-app.min.css
      |-login.min.css
  -- active
    --imagini
    --fonturi
  --index.html
  --login.html

Am urmatoarele configurație nginx

Server {
  asculta 80;
  error_log /var/log/nginx/error.log;
  access_log /var/log/nginx/access.log;

  root /usr/share/nginx/html;

  locație / conținut {
    rescrie ^/content$ /index.html;
  }

  locație /conținut/login {
    rescrie ^/content/login$ /login.html;
  }

}

Aceasta este index.html fişier

<html lang="en" data-ng-app="app">
  <header>
    <script src="build/js/app.min.js"></script>
    <link rel="stylesheet" href="build/styles/app.min.css">
  </header>
  <body>
    ...
  </body>
</html>

și login.html fişier


<html lang="en" data-ng-app="app-login">
  <header>
    <script src="build/js/login.min.js"></script>
    <link rel="stylesheet" href="build/styles/login.min.css">
  </header>
  <body>
    ...
  </body>
</html>

Ce vreau să realizez

Când utilizatorii merg la http://localhost:3000/content aplicația va servi index.html și login.html dacă utilizatorii vizitează http://localhost:3000/content/login.

Ambele /conţinut și /conținut/login sunt rute care nu există în aplicația Angularjs.

Ce am primit

La accesare http://localhost:3000/content/login aplicația a încărcat următoarele 2 fișiere

  • http://localhost:3000/content/build/js/login.min.js
  • http://localhost:3000/content/build/styles/login.min.css

Ambele au primit codul de eroare 404.

La ce ma asteptam

Vreau ca Nginx să servească direct fișierul http://localhost:3000/content/build/js/login.min.js cu conținutul fișierului din http://localhost:3000/build/js/login.min.js. Se aplică și pentru fișierele CSS.

jb_alvarado avatar
drapel tc
Când rulați `http://localhost:3000/` nu veți lovi pe nginx, deoarece nginx ascultă pe portul 80.
Tan Viet avatar
drapel in
@jb_alvarado Ah, folosesc docker-compose pentru a asculta portul 80 de la nginx, apoi îl export pe portul 3000 de pe mașina mea gazdă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.