2

次のconfig.ruファイルがあるとします

require './status.rb'

map "/status" do
  run Sinatra::Application
end

status.rbは単純です

require 'sinatra'

get '/' do
  'Some status here...'
end

Sinatra アプリケーションが内部でマウントされている場所を知りたいですstatus.rb(たとえば、リソースへの適切なパスを提供するため)。ラックからその情報を取得する方法はありますか?

4

1 に答える 1

3

アプリがマウントされている場所を取得するには、 を使用できますrequest.script_name

get '/' do
  p request.script_name # will print "/status"
  'Some status here...'
end

リソースの URL を生成している場合は、代わりにurlメソッドを参照することをお勧めします。これには、プロキシやアプリがマウントされている場所が考慮されます。

get '/' do
  p url('foo') # will print "http://localhost:9292/status/foo"
  'Some status here...'
end
于 2013-02-09T15:21:32.200 に答える