0

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,而我的应用程序的设置并非如此。

4

1 回答 1

1

https://github.com/rack/rack/blob/master/lib/rack/urlmap.rb

Rack::URLMap 中没有确定优先级。它与您提供的资源的完整路径匹配

map(){ ... }
于 2013-07-31T08:58:42.937 回答