我正在开发一个 Sinatra 网络应用程序,我想在那里规范化和绝对化许多 URL。为此,我使用了 Rack::Request 对象:
before do
@cached_request = Rack::Request.new(env)
end
def absolutize(path)
u = URI.parse('/%s' % path) # Ensure leading slash is there
u.scheme = @cached_request.scheme
u.host = @cached_request.host
u.port = @cached_request.port
u.to_s
end
但是,即使我的应用程序在端口 9393 上运行,SERVER_PORT 变量也有 80。我已经检查了 env 对象的相关信息,但它似乎没有关于请求端口的任何信息。
我应该如何从应用程序中找出这个?我没有在机架规范中看到对变量的引用...
到目前为止,我已经尝试在 Puma 和 Webrick 上运行 rackup 文件。