Me gustaría poder recuperar la URL base de mi aplicación web desde el código de inicialización del Rack en mi config.ru
. Algo a lo largo de las líneas de:¿Puedo obtener la URL base de mi servicio Rack fuera de un controlador de solicitud?
puts "Starting up on http://#{ENV['SERVER_NAME']}:#{ENV['SERVER_PORT']}/#{ENV['MOUNT_POINT']}..."
pero no he encontrado nada como esto que está disponible desde el exterior de un controlador de solicitudes. Obviamente, puedo hacer algo como:
...
def get
puts "Got a request for #{ENV['rack.url_scheme']}://#{ENV['HTTP_HOST']}#{ENV['REQUEST_PATH']}"
...
porque la solicitud se define en ese punto. Pero al comienzo de mi archivo de configuración, ninguna de esas variables parece estar definida.
¿Existe algún método de Rack que pueda usarse para acceder a esta información? ¿Este es uno de esos casos en los que esas cosas no se finalizan hasta que finaliza el inicio del Rack? Me parece recordar otros frameworks que tienen una forma de pasar un proceso a un método que lo ejecutará una vez que el entorno esté "listo". ¿Rack tiene algo así?
¿Qué intentas establecer en config.ru que necesita esta información? – nictrix
No estoy intentando * establecer * nada, solo creo que es bueno que el registro muestre dónde se encuentra el servicio; es especialmente útil cuando un desarrollador nuevo prueba por primera vez. – Coderer