can';t配置从后端到前端的URL Yii2
Web前端-本地主机(LAMP中的目录apache2/htdocs),Web后端-本地主机:8080/backend(apache2/htdocs/backend)。Yii高级应用程序与htdocs位于同一目录下-mafia Yii(apache2/mafia Yii)。backend/config中的main.php文件:can';t配置从后端到前端的URL Yii2,yii2,Yii2,Web前端-本地主机(LAMP中的目录apache2/htdocs),Web后端-本地主机:8080/backend(apache2/htdocs/backend)。Yii高级应用程序与htdocs位于同一目录下-mafia Yii(apache2/mafia Yii)。backend/config中的main.php文件: 'components' => [ .... 'urlManager' => [ // here is your normal
'components' => [
....
'urlManager' => [
// here is your normal backend url manager config
'class' => 'yii\web\UrlManager',
'baseUrl' => 'http://localhost/backend',
],
'urlManagerFrontend' => [
'class' => 'yii\web\UrlManager',
'hostInfo' => 'http://localhost',
'baseUrl' => 'http://localhost',
],
],
文件~/lampstack-7.0.4-0/apache2/mafia-yii/backend/views/layouts/main.php:
....
$menuItems[] = ['label' => 'Backend', 'url' => ['/site/index']];
$menuItems[] = ['label' => 'Fronend', 'url' => [Yii::$app->urlManagerFrontend->createUrl('/site/index')]];
....
结果:
找不到(#404)请尝试使用以下代码:
use yii\helpers\Url;
$menuItems[] = ['label' => 'Fronend', 'url' => Url::to(Yii::getAlias('@web') . '/site/index', true)];
您是否尝试过:
'components' => [
....
'urlManager' => [
// here is your normal backend url manager config
'class' => 'yii\web\UrlManager',
'baseUrl' => '/backend',
],
'urlManagerFrontend' => [
'class' => 'yii\web\UrlManager',
'hostInfo' => 'http://localhost',
'baseUrl' => '',
],
],
我解决了这个问题因为:
$var[] = Yii::getAlias('@webroot');
$var[] = Yii::getAlias('@web');
\yii\helpers\VarDumper::dump($var);
返回:
[0=>'/home/kira/lampstack-7.0.4-0/apache2/htdocs/backend'1=>'/backend']
解决方案是:
$menuItems[]=['label'=>'Frontend','url'=>'@web/./'] 结果:找不到(#404)它返回为@web-“/backend”,然后请尝试在“urlManagerFrontend”=>[“class'=>“Yii\web\UrlManager”,“hostInfo'=>”,“baseUrl'=>”,]之后使用Yii::$app->urlManagerFrontend->createUrl('/site/index'),配置而不是Url::to(