J'ai une application principale située à root
: /app/web
.
Puis une autre application dans un sous-répertoire - /app/web/second
.
Les pages sont situées dans /app/web/second//page
.
Les assets sont situés dans /app/web/second//css
et /app/web/second//js
.
peut être dev
(staging) ou dist
(production), donc cela changera en fonction de l'instance.
Dans le code, les assets sont référencés comme par exemple /second/css/style.css
. J'ai besoin que ces requêtes soient réécrites vers leur emplacement dans le système de fichiers approprié par exemple /app/web/second/dev/css/style.css
Voici ce que j'ai pour manipuler les requêtes sur dev
:
root /app/web;
location /rsvp {
alias /rsvp/dev;
rewrite ^/rsvp/([a-z0-9-]+)/?$ $document_root/page/title.php?id=$1 last;
rewrite ^/rsvp/(.+)\.(css|js)$ $document_root/$1/$2 last;
}
La réécriture de page fonctionne bien. Le journal des scripts montre :
GET /second/foobar HTTP/1.1 200 > /app/web/second/dev/page/title.php
Les réécritures d'asset sont complètement différentes. Le root
n'est pas ajouté et l'alias
est dupliqué. Journal des scripts :
GET /second/css/style.css HTTP/1.1 404 > /second/dev/second/dev/css/style/css
GET /second/js/script.js HTTP/1.1 404 > /second/dev/second/dev/js/script/js
Ceci est une base de code héritée donc la mettre en place est une priorité avant de la refacturer vers une meilleure structure.