Esta es una pregunta muy simple: ¿Cómo ejecuto una aplicación Yesod que puede manejar varios hosts al mismo tiempo?Aplicación Yesod independiente del nombre de host
Una configuración predeterminada de Yesod puede manejar las conexiones entrantes desde cualquier host, pero todas las URL se procesan con approot
antes de ellas. Anular joinPath
en la declaración de la instancia Yesod sería posible, si hubiera una forma de almacenar el dominio actual para que esté disponible para esa función, pero no lo hay.
El método descrito en this wiki page funciona, pero es muy hackish, ya que obliga a las rutas a tomar un parámetro domain
adicional (ya que no tengo un conjunto estático de dominios para hacer coincidir). Para fines prácticos (porque tengo muchas rutas, algunas de las cuales son independientes del dominio), sería mejor tener una solución que dejara intactas las rutas, ya que es posible obtener el nombre de host de la información de solicitud de WAI dentro de una función de controlador.
Uso cosas que requieren URL absolutas (por ejemplo, correo electrónico, RSS, XML API) así que approot _ = ""
no es una opción.
No conozco ni puedo conocer todos los nombres de host, que deben ser compatibles, en tiempo de compilación.
Entonces, ¿cómo renderizo las URL para que utilicen el nombre de host de la solicitud entrante y no la variable approot
?
que van a seguir la discusión, y agradecería una actualización de esta respuesta (por otros usuarios) una vez a la solución está en los repositorios. ¡Gracias! – dflemstr