Me gustaría agregar una aplicación angular separada en una ruta específica (la ruta debe estar al final de una URL para que coincida). Quiero mantener ambas versiones, que son actuales y una nueva, pero la nueva solo debería estar disponible en la ruta especificada. Intenté usar alias + try_files. Mi configuración:
server { listen 80; root /dir/project1 server_name ...; index index.html; location ~ /path { alias /dir/project2 try_files $uri $uri/ /index.html; }La cuestión es que cuando se activa try_files, toma la ruta desde la directiva raíz, no desde el alias. ¿Como arreglarlo? Solo puedo agregar que no puedo usar proxy_pass aquí y root en lugar del alias tampoco funciona, ya que agrega rutas, etc.
La directiva de alias funciona de manera diferente cuando se coloca dentro de una ubicación de expresión regular, pero probablemente debería usar una ubicación de prefijo de todos modos. Vea este documento para más detalles.
Además, el uso de alias y try_files juntos puede causar problemas (consulte este error de larga data ).
Está reescribiendo el URI en /index.html que es la aplicación incorrecta y, en su lugar, debería ser /path/index.html .
Tratar:
location ^~ /path { alias /dir/project2; if (!-e $request_filename) { rewrite ^ /path/index.html last; } } Consulte esta precaución sobre el uso de if .