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("/"){...}

Sinatraなどの一部の Web アプリケーション フレームワークでは、 と表示されます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 に答える