1

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

目前该应用程序托管在根路径之外,因此可在 :3000/

我需要将它托管在非根路径上,例如:3000/rubygems。我在 Rack 应用程序或Passenger 方面没有太多经验,所以我不确定在哪里可以完成这项工作。

那么,在由Passenger、Rack 和Sinatra 组成的应用程序堆栈上,我可以在哪里轻松配置该应用程序以托管在非根路径(如:3000/rubygems)上?

4

1 回答 1

1

事实证明,您可以在 config.ru 文件中为 Rack 应用程序使用地图功能。这将在该路径之外托管应用程序。

这是一个例子:

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

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

于 2014-01-28T23:07:34.317 回答