我目前正在尝试将其中一个较小的催化剂应用程序移植到Mojolicious
(就是图个好玩儿)。

假设我们在页面上:http://whatever.com/generate
在该页面上,有一个指向“生成的”的链接。

使用催化剂(带有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'

谢谢,

ldx

最佳答案

url_for生成相对于应用程序根目录的URL。这样做是为了实现可移植性:您可以将应用放置在任何URL上,并且链接不会中断。

如果您需要一个指向绝对路径的链接,那么为什么需要url_for呢?您只能使用字符串'/generated'

另一方面,如果您确实需要Mojo::URL对象,则可以使用

<%= url_for->path('/generated') %>
url_for在不带参数的情况下返回当前网址

10-08 00:03