我正在运行thin
服务器(没有任何Web应用程序框架)。在路由模式中,匹配模式的顺序似乎没有区别。我是否这样做:
Rack::Handler::Thin.run(Rack::Builder.new do
map("/"){...}
map("/foo/"){...}
end, Port: 3000)
或
Rack::Handler::Thin.run(Rack::Builder.new do
map("/foo/"){...}
map("/"){...}
end, Port: 3000)
localhost:3000/foo/
的请求将由map("/foo/"){...}
而不是map("/"){...}
正确选取。这个优先级如何确定?
对于某些Web应用程序框架,例如在Sinatra中,它显示Routes are matched in the order they are defined. The first route that matches the request is invoked
,而我的应用程序设置不是这种情况。
答案 0 :(得分:1)
https://github.com/rack/rack/blob/master/lib/rack/urlmap.rb
在Rack :: URLMap中未确定优先级。它与您提供的资源的完整路径匹配
map(){ ... }