我目前正试图将我的一个较小的催化剂应用程序移植到Mojolicious(只是为了好玩)。
假设我们在一个页面上:http://whatever.com/generate。在该页面上有一个链接,例如“generated”
当使用catalyst(带有TT模板)并将链接定义为
uri_for 'generated'
它将生成指向http://whatever.com/generate/generated的链接但如果将其定义为
uri_for '/generated'
它将生成到http://whatever.com/generated链接
我试着用Mojolicious的url_for做同样的事情,但似乎效果不一样。
url_for 'generated'
或
url_for '/generated'
两个调用都生成指向“/generate/generated”的链接
所以我的问题是:如何使url_for生成指向绝对路由的链接。例如指向“/generated”
2条答案
按热度按时间r6hnlfcb1#
url_for
生成相对于应用根目录的url。这样做是为了可移植性:你可以把你的应用程序在任何网址和你的链接不会被破坏。如果你需要一个指向绝对路径的链接,为什么需要url_for than呢?你可以只使用字符串
'/generated'
。另一方面,如果您真的需要Mojo::URL对象,您可以使用
url_for
在不使用参数调用时返回当前url6rqinv9w2#
你可以很容易地从url_for中得到一个绝对url,它返回一个Mojo::URL对象,所以你可以只使用to_abs方法: