
Eu tenho um aplicativo AngularJs (v1) criado como uma imagem Docker (com Nginx como servidor web). Tem estrutura abaixo
-app
--build
--js
|-app.min.js
|-login.min.js
--styles
|-app.min.css
|-login.min.css
--assets
--images
--fonts
--index.html
--login.html
Eu tenho o seguinteconfiguração 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;
}
}
Isso éindex.htmlarquivo
<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>
elogin.htmlarquivo
<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>
O que eu quero alcançar
Quando os usuários acessarem http://localhost:3000/content
o aplicativo será veiculado index.html
e login.html
se os usuários visitarem http://localhost:3000/content/login
.
Ambas /content
e /content/login
são rotas que não existem no aplicativo Angularjs.
O que eu consegui
Ao acessar http://localhost:3000/content/login
o aplicativo carregou os 2 arquivos a seguir
http://localhost:3000/content/build/js/login.min.js
http://localhost:3000/content/build/styles/login.min.css
Ambos obtiveram o código de erro 404.
O que eu esperava
Quero que o Nginx sirva diretamente o arquivo http://localhost:3000/content/build/js/login.min.js
com o conteúdo do arquivo http://localhost:3000/build/js/login.min.js
. Também se aplica a arquivos CSS.