Servant deux applications angulars différentes sur un domaine avec des caractères génériques dans le chemin

Disons que j’ai une application pour chien écrite en AngularJS et que j’ajoute maintenant une nouvelle sous-application de canvasttage écrite en Angular4

En ce moment, j’ai nginx serving /api sur un serveur php backend avec le préfixe /api réécrit (donc il ne le sait pas dans un sous-chemin) et / servi par l’application AngularJS frontend. Ce sont deux applications distinctes, chacune dans leur propre répertoire de serveur. Cela fonctionne bien maintenant.

Maintenant, nous ajoutons une application de canvasttage écrite en ng4 et qui devrait être servie comme s’il s’agissait d’un module de l’application principale, mais à partir d’un répertoire de serveur entièrement différent, par exemple /dogs/315/grooming

Si je code en dur l’emplacement pour faire correspondre location /dogs/315/grooming il charge le ng4 index.html et tente de servir l’application, mais si j’utilise l’ location ~ ^/dogs/([0-9]+)/grooming regex location ~ ^/dogs/([0-9]+)/grooming saute par-dessus et charge l’emplacement.

L’application Grooming s’attend à ce qu’une URL telle que /dogs/315/* définisse le contexte, puis utilise des segments d’URL supplémentaires pour ses propres fonctionnalités.

Le try_files $uri $uri/ $uri.html /index.html à l’ location ~ ^/dogs/([0-9]+)/grooming continue à envoyer l’application enfant au parent.

Voici quelques extraits de code, la partie de nettoyage a été réécrite et a changé de nombreuses manières, je ne l’inclue que comme exemple:

 # This works location ^~ /api { alias /home/forge/api.greatapp.com/current/public; try_files $uri $uri/ @api; } # This works location @api { rewrite /api/(.*)$ /api/index.php?$query_ssortingng last; } # This doesn't work location ~ ^/dog/([0-9]+)/grooming { alias /home/forge/dog-grooming.greatapp.com/current/dist/; try_files $uri $uri/ @grooming; } # Nor this location @grooming { rewrite ^/dog/([0-9]+)/grooming/(.*)$ /index.html break; } # This works location / { try_files $uri $uri/ $uri.html /index.html; } 

Complètement coincé sur les portions de canvasttage; J’ai essayé tellement de choses que je pouvais partir sur la mauvaise voie.

Afficher la réponse sous forme de commentaires au besoin

 location ~ ^/dog/([0-9]+)/grooming/ { alias /home/forge/dog-grooming.greatapp.com/current/dist/; index index.html; try_files $uri $uri/ =404; }