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.