1

たとえば、次のようなリクエストを解釈したいと思います。

GET /my/path?foo=bar

実際に書き換えられたかのように

GET /?path=/my/path&foo=bar

param('path')これで、次のルートを使用してこれを達成できると思いましparam('foo')た。たとえば、次のように使用します。

get '/:path' => sub {
    return printf "...so you want %s, thinking that best foo is %s...",
        param('path'),
        param('foo');
}

しかし、私は404を取得します - その:path部分にスラッシュを含めることはできないようです.

ルートでこれを達成できますか?または、間違った方向を見ていますか (Dancer を初めて使用します)。

4

1 に答える 1

1

トークンの代わりに正規表現でルートを照合したい場合があります。一致は、キーワードによって返される特別な配列に格納されsplatます。pathただし、からはアクセスできませんparam('path')

コード:

get qr{/([^?]*)} => sub {
    my ($path) = splat;
    return printf "...so you want %s, thinking that best foo is %s...",
        $path,
        param('foo');
}
于 2012-12-25T01:40:56.473 に答える