如何在 Sinatra 视图中引用根路径

How to refer to root path in Sinatra views

有没有办法引用我的 Sinatra 应用程序的根 URL?在其中一个视图中说我想执行以下操作:

<a href="<%= ROOT_PATH/cats %>">Show all cats</a>

Sinatra 是否为 ROOT_PATH 或等价物提供了魔法助手?

应该可以通过 request.base_url

访问

rack 使用:

实现
def base_url
  url = "#{scheme}://#{host}"
  url << ":#{port}" if port != DEFAULT_PORTS[scheme]
  url
end

Get absolute (base) url in sinatra

还有uri helper

#uri(addr = nil, absolute = true, add_script_name = true) ⇒ Object  

Also known as: url, to

Generates the absolute URI for a given path in the app. Takes Rack routers and reverse proxies into account.

举个例子:

<a href="<%= uri('/cats') %>">Show all cats</a>