开发者

Mojolicious url_for: absolute path

开发者 https://www.devze.com 2023-02-03 05:02 出处:网络
I\'m currently trying to port one of my smaller catalyst apps to Mojolicious (just for the fun of it).

I'm currently trying to port one of my smaller catalyst apps to Mojolicious (just for the fun of it).

Say that we are on a page: http://whatever.com/generate. On that page there is a link to for example "generated"

When using catalyst (with TT templates) and you define the link as

uri_for 'generated'

it will generate a link to http://whatever.com/generate/generated But if you define it as

uri_for '/generated'

it will generate a link to http://whatever.com/generated

I tried to do the same with Mojolicious' url_for, but it seems to work differently开发者_StackOverflow. It doesn't make a differnece wether I call

url_for 'generated'

or

url_for '/generated'

both calls generate a link to '/generate/generated'

So my question is: how do I make url_for generate a link to an absolute route. i.e. to '/generated'


url_for generates urls relative to app root. That was done for portability: you may place your app at any url and your links won't get broken.

If you need an link to absolute path, why do you need url_for than? You can use just a string '/generated'.

From other hand, if you really need Mojo::URL object you can get it with

<%= url_for->path('/generated') %>

url_for when called without params returns current url


You can easily get an absolute url from url_for. It returns a Mojo::URL object, so you can just use the to_abs method:

$ perl -Mojo -E 'a("/" => sub { $s=shift;$s->render(text=>$s->url_for("/")->to_abs) })->start' get /
http://localhost:13733/
0

精彩评论

暂无评论...
验证码 换一张
取 消