Questa è una domanda molto semplice: come posso eseguire un'applicazione Yesod in grado di gestire più host contemporaneamente?Applicazione Yesod indipendente dal nome host
Un'impostazione predefinita di Yesod può gestire le connessioni in arrivo da qualsiasi host, ma tutti gli URL sono resi con approot
anteposto a loro. È possibile eseguire l'override di joinPath
nella dichiarazione dell'istanza di Yesod, se esiste un modo per archiviare il dominio corrente in modo che sia disponibile per tale funzione, ma non lo è.
Il metodo descritto su this wiki page funziona, ma è molto fastidioso, poiché obbliga le rotte a prendere un ulteriore parametro domain
(poiché non ho un set statico di domini con cui confrontarlo). Per scopi pratici (perché ho molti percorsi, alcuni dei quali indipendenti dal dominio), sarebbe meglio avere una soluzione che lascia intatti i percorsi, dal momento che è ancora possibile ottenere il nome host dalle informazioni di richiesta WAI all'interno di una funzione di gestore.
Uso le cose che richiedono URL assoluti (ad esempio e-mail, RSS, API XML) quindi approot _ = ""
non è un'opzione.
Non conosco e non posso conoscere tutti i nomi host, che devono essere supportati, in fase di compilazione.
Quindi, come posso eseguire il rendering degli URL in modo che utilizzino il nome host della richiesta in entrata e non la variabile approot
?
sarò A seguito della discussione, e gradirebbe un aggiornamento a questa risposta (per gli altri utenti) una volta che una soluzione è in pronti contro termine. Grazie! – dflemstr