在Sinatra应用程序中获取机架安装路径

时间:2013-02-09 13:27:29

标签: ruby sinatra rack

假设我有以下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中检索这些信息?

1 个答案:

答案 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