【问题标题】:Getting Rack mounted path in Sinatra application在 Sinatra 应用程序中获取机架安装路径
【发布时间】:2013-02-09 13:27:29
【问题描述】:

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

【问题讨论】:

    标签: ruby sinatra rack


    【解决方案1】:

    要获取应用的安装位置,您可以使用request.script_name

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

    如果您正在为资源生成 url,则可能需要查看 url method。这将考虑代理以及应用安装位置等因素:

    get '/' do
      p url('foo') # will print "http://localhost:9292/status/foo"
      'Some status here...'
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 2015-07-30
      • 2013-11-24
      相关资源
      最近更新 更多