我正在建立一个Geminabox存储库,这是一个Rack应用程序(基于Sinatra)。我正在Passenger独立服务器上运行该应用程序。
目前,该应用程序正在根据路径托管,因此可在以下位置获得:3000 /
我需要将其托管在非根路径上,例如:3000 / rubygems。我对Rack应用程序或Passenger没有太多经验,所以我不确定在哪里可以做到这一点。
因此,在由Passenger,Rack和Sinatra组成的应用程序堆栈中,我可以在哪里轻松配置此应用程序,以便托管非根路径,例如:3000 / rubygems?
答案 0 :(得分:1)
事实证明,您可以在config.ru文件中使用 map 功能来处理Rack应用程序。这将托管该路径上的应用程序。
以下是一个例子:
map "/my-sub-path" do
run MyModule::MySinatraApp
end
这将从 / my-sub-path 运行该应用程序,并且当到达您的路径时,对该路径的所有请求都将被重写到根目录( / )路径Sinatra(或其他)app。