网站的根目录是 /aurora/
然后有五个应用,blog + foumn + shop + back + front
back应用是项目的后台,管理blog+foumn+shop,
front应用是blog+foumn+shop的用户中心页面(前台管理嘛),相当于back的功能
现在问题是解决url硬编码的问题,其中blog+foumn+shoap有时会需要
/aurora/back/index.php?r
/aurora/front/index.php?r
的url需求,
然后我发现
//假设在blog应用中
Yii::$app->urlManage->createUrl('');
//结果是
/aurora/blog/web/index.php?r=
//然后加了一个配置
//in blog config
'frontUrl' => [
'class' => 'yii\web\urlManager',
'baseUrl' => '/aurora/front/web'
],
//然后在blog的view中
Yii::$app->frontUrl->createUrl('');
//兴高采烈的以为会
/aurora/front/web/index.php?r=
//发现依旧是
/aurora/blog/web/index.php?r=
//看了源码之后发现是(在 yii\web\UrlManager)
$baseUrl = $this->showScriptName || !$this->enablePrettyUrl ? $this->getScriptUrl() : $this->getBaseUrl();
导致这种效果
大家有没有好的解决方法:
感谢任何建议。
很明显我不会增加这些配置的
'enablePrettyUrl' => true,
'showScriptName' => false,
echo '/api' . Url::toRoute('/site/index')
返回/api/index.php?r=site/index
这样不就行了