一般默认首页使用index/index访问的时候,使用Url::to生成的链接地址会出错,而直接使用 / 访问的话,则没有这个问题。
好像Url::to的时候,并没有分析当前路径信息的,而是很 式的生成了路径信息,有没有办法在什么地方配置这个自动分析当前url来生成正确的地址的?
难道只能用绝对路径来生成url???
骚年,这问题真的有点蛋疼。要不是我当初遇到了这个问题我都不知道怎么回答,我自己琢磨了半天才搞定,源码也没写多清楚。Url::to()
方法里面的路径必须加中括号,如果不加生成的就是最普通的字符串。Url::to('index/msg')
是非常错误的写法Url::to(['index/msg'])
这才是正确写法。
vendor/yiisoft/yii2/helpers/BaseUrl.php
这儿有说明。
例如site/index site是控制器名,index是行为名。
如果是路由,用Url::toRoute
,它会根据urlManager里面配置的rules来生成url