假设我有以下config.ru
文件
require './status.rb'
map "/status" do
run Sinatra::Application
end
而status.rb
是一个简单的
require 'sinatra'
get '/' do
'Some status here...'
end
我想知道在status.rb
内安装Sinatra应用程序的位置(例如,提供适当的资源路径)。有没有办法从Rack中检索这些信息?
答案 0 :(得分:3)
要获取应用的安装位置,您可以使用request.script_name
。
get '/' do
p request.script_name # will print "/status"
'Some status here...'
end
如果您要为资源生成网址,则可能需要查看url
method。这将考虑代理以及应用程序的安装位置等事项:
get '/' do
p url('foo') # will print "http://localhost:9292/status/foo"
'Some status here...'
end