
Tengo una aplicación AngularJs (v1) que está construida como una imagen de Docker (con Nginx como servidor web). Tiene debajo de la estructura.
-app
--build
--js
|-app.min.js
|-login.min.js
--styles
|-app.min.css
|-login.min.css
--assets
--images
--fonts
--index.html
--login.html
tengo lo siguienteconfiguración nginx
server {
listen 80;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /usr/share/nginx/html;
location /content {
rewrite ^/content$ /index.html;
}
location /content/login {
rewrite ^/content/login$ /login.html;
}
}
Esto esíndice.htmlarchivo
<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>
yiniciar sesión.htmlarchivo
<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>
lo que quiero lograr
Cuando los usuarios van a http://localhost:3000/content
la aplicación se servirá index.html
y login.html
si los usuarios la visitan http://localhost:3000/content/login
.
Tanto of /content
como /content/login
son rutas que no existen en la aplicación Angularjs.
¿Qué obtuve?
Al acceder http://localhost:3000/content/login
a la aplicación se cargaron los 2 archivos siguientes
http://localhost:3000/content/build/js/login.min.js
http://localhost:3000/content/build/styles/login.min.css
Ambos obtuvieron el código de error 404.
¿Qué esperaba?
Quiero que Nginx sirva directamente el archivo http://localhost:3000/content/build/js/login.min.js
con el contenido del archivo http://localhost:3000/build/js/login.min.js
. También se aplica a archivos CSS.