¿Cómo utilizar correctamente el contenido del archivo con ruta virtual usando Nginx?

¿Cómo utilizar correctamente el contenido del archivo con ruta virtual usando Nginx?

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/contentla aplicación se servirá index.htmly login.htmlsi los usuarios la visitan http://localhost:3000/content/login.

Tanto of /contentcomo /content/loginson rutas que no existen en la aplicación Angularjs.

¿Qué obtuve?

Al acceder http://localhost:3000/content/logina 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.jscon el contenido del archivo http://localhost:3000/build/js/login.min.js. También se aplica a archivos CSS.

información relacionada