私はconfig.ru
のラック初期化コード内から自分のWebアプリケーションのベースURLを取得したいと考えています。RackサービスのベースURLをリクエストハンドラの外に出すことはできますか?
puts "Starting up on http://#{ENV['SERVER_NAME']}:#{ENV['SERVER_PORT']}/#{ENV['MOUNT_POINT']}..."
しかし、私はリクエストハンドラの外部から利用可能なこのようなものは見つかりませんでした。明らかに、私は次のようなことをすることができます:
...
def get
puts "Got a request for #{ENV['rack.url_scheme']}://#{ENV['HTTP_HOST']}#{ENV['REQUEST_PATH']}"
...
リクエストはその時点で定義されているためです。しかし、私の設定ファイルの始めには、それらの変数のどれも定義されていないようです。
この情報へのアクセスに使用できるラック方式はありますか?これは、ラックの起動が完了するまでこれらの事柄がファイナライズされないケースの1つですか?私は、環境が "準備完了"になったらそれを実行するメソッドにprocを渡す方法を持つ他のフレームワークを覚えているようです。ラックにはそういうものがありますか?
この情報が必要なconfig.ruに何を設定しようとしていますか? – nictrix
私は*何も設定しようとしていません。サービスがどこにあるかをログに表示するといいと思います。新しいデベロッパーが初めてテストを試みるときに特に便利です。 – Coderer