Ho 2 pacchetti: uno per il mio sito Web e uno per la mia API. Il mio URL API è mywebsite
e l'URL del mio sito Web è www.website.com
.
Io uso il parametro host
per filtrare i routes per host e voglio consentire localhost
su uno dei miei bundle per scopi di sviluppo locale (senza creare un vhost).
Ma ottieni questo errore:
Parameter "domain" for route "tv_home" must match "[^\.]++" ("((www\.)?mywebsite\.fr|localhost)" given) to generate a corresponding URL.
Capisco che provenga dalla regex che uso qui:
domain: "((www\.)?mywebsite\.fr|localhost)"
Come posso raggiungere il mio objective se non riesco a usare i punti in questa regex?
Ecco il mio file di routing principale:
tv_api: resource: "@TVApiBundle/Resources/config/routing.yml" host: "api.mywebsite.fr" prefix: / tv_site: resource: "@TVSiteBundle/Resources/config/routing.yml" host: "{domain}" defaults: domain: "((www\.)?mywebsite\.fr|localhost)" prefix: /
Saluti,
Il valore del dominio predefinito non influisce sul fatto che il path corrisponderà o less. A causa del dominio, se sempre presente nella richiesta, è utile solo per generare URL. Ci sono requisiti per questo scopo (btw [^.] ++ sarebbe il requisito predefinito per il dominio).
tv_site: resource: "@TVSiteBundle/Resources/config/routing.yml" host: "{domain}" defaults: domain: "mywebsite.fr" requirements: domain: "((www\.)?mywebsite\.fr|localhost)" prefix: /
Dovrebbe funzionare. Ma tutti i routes verranno generati con mywebsite.fr (in caso di URL assoluto). È ansible utilizzare il parametro del contenitore di servizi.
tv_site: resource: "@TVSiteBundle/Resources/config/routing.yml" host: "{domain}" defaults: domain: "%domain%" requirements: domain: "((www\.)?mywebsite\.fr|localhost)" prefix: /
Ad esempio, il modo più semplice per definire questo parametro è in parameter.yml. O penso che tu possa anche ommit defaults key completamente.