gpt4 book ai didi

ruby - 挂载多个 Rack 应用程序而无需在 url 中添加前缀

转载 作者:数据小太阳 更新时间:2023-10-29 08:51:14 25 4
gpt4 key购买 nike

如何在不使用 mapRack::UrlMap 的情况下安装/运行多个 Rack 应用程序?使用这些可以很好地调度应用程序,但也会将用于调度的路由添加到匹配器的开头,因此:

class API < Sinatra::Base
get "/api" do
# blah
end
end

map( "/api" ) { run API }

上面的路由是在“/api/api”访问的,这不是我想要的,只是“/api”是我想要的。如果有更好的方法,我不想使用过滤器和删除前缀来深入研究请求对象。

我试过:

use API.app  # the app is wrapped in a `def self.app` for convenience.
run Web.app

但是,如果应用本身也在其中使用了 use,则 use 会导致问题。这样做:

run API.app
run Web.app

将仅提供来自最后一个运行应用的路由。

我打算尝试 Rack::Cascade,但我以前从未使用过它,不知道它是否是解决这个问题的好方法。

最佳答案

答案确实是 Rack::Cascade:

run Rack::Cascade.new( [API, Web] )

关于ruby - 挂载多个 Rack 应用程序而无需在 url 中添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12496691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com