Hi,

I'm using uri_for()/uri_base() in my code, and I've noticed sadly that they 
ignore the "prefix" settings.
While changing this in Dancer1 will wreak havoc :), perhaps this can be 
improved in Dancer2 ?

Simple Example:
======
package uri_for_test;
use Dancer ':syntax';

our $VERSION = '0.1';

get '/' => sub {
    my $url_base = request->uri_base;
    my $url = request->uri_for("/verify");
    print STDERR "URL = $url\n";
    print STDERR "URL-BASE = $url_base\n";
    template 'index';
};

true;
======

Running it (with ./bin/app.pl) prints (as expected):
======
>> Dancer 1.3090 server 28846 listening on http://0.0.0.0:3000
== Entering the development dance floor ...
URL-BASE = http://localhost:3000
URL = http://localhost:3000/verify
======

Then, adding just the "prefix" statement before the "get":
===
prefix "/foo" ;
===

Makes the application respond to "http://localhost:3000/foo";, but the printed 
output is still:
===
URL-BASE = http://localhost:3000
URL = http://localhost:3000/verify
===

Whereas I would expect it to be:
===
URL-BASE = http://localhost:3000/foo
URL = http://localhost:3000/foo/verify
===

This makes the "prefix" statement only partially useful, because changing 
prefix of an entire application/module still requires manually changing all the 
"uri_for/uri_base" calls.

Regards,
 -gordon
_______________________________________________
Dancer-users mailing list
[email protected]
http://www.backup-manager.org/cgi-bin/listinfo/dancer-users

Reply via email to