使用Rack主机Sinatra应用程序关闭非根路径

时间:2014-01-10 17:49:36

标签: ruby sinatra passenger rack geminabox

我正在建立一个Geminabox存储库,这是一个Rack应用程序(基于Sinatra)。我正在Passenger独立服务器上运行该应用程序。

目前,该应用程序正在根据路径托管,因此可在以下位置获得:3000 /

我需要将其托管在非根路径上,例如:3000 / ruby​​gems。我对Rack应用程序或Passenger没有太多经验,所以我不确定在哪里可以做到这一点。

因此,在由Passenger,Rack和Sinatra组成的应用程序堆栈中,我可以在哪里轻松配置此应用程序,以便托管非根路径,例如:3000 / ruby​​gems?

1 个答案:

答案 0 :(得分:1)

事实证明,您可以在config.ru文件中使用 map 功能来处理Rack应用程序。这将托管该路径上的应用程序。

以下是一个例子:

map "/my-sub-path" do
  run MyModule::MySinatraApp
end

这将从 / my-sub-path 运行该应用程序,并且当到达您的路径时,对该路径的所有请求都将被重写到根目录( / )路径Sinatra(或其他)app。