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(例如提供正确的资源路径)。有没有办法从 Rack 中检索这些信息?

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