Yii2添加request的baseUrl后加载的资源url也会加上这个baseUrl导致加载的不对
我的是Advanced版本,我frontend和backend是单独用不同域名的,由于怕权限管理里面跟前台的路由有相同的,所以就在后台的路径里添加个/admin
。
具体是在backend的main.php
的components
里添加baseUrl => /admin
添加,添加后,页面是可以访问的,就是url多了个admin,比如从backend.example.com/controller/action
变成backend.example.com/admin/controller/action
'components' => [
'request' => [
'csrfParam' => '_csrf-backend',
//All requests will add "/admin",e.g:
//backend.example.com/controller/action will change to
//backend.example.com/admin/controller/action
'baseUrl' => '/admin',
],
],
但问题是,assets url也加了这个admin,导致无法加载
我试了改这个文件backend/assets/AppAsset.php
里的$baseUrl
,但是无论我怎么修改,它完全不起作用(没设置'baseUrl' => '/admin'
的时候设置这个是有用的)
<?php
namespace backendassets;
use yiiwebAssetBundle;
/**
* Main backend application asset bundle.
*/
class AppAsset extends AssetBundle {
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
];
public $js = [
];
public $depends = [
'yiiwebYiiAsset',
'yiibootstrapBootstrapAsset',
];
}
另外我发现在views页面中用registerJsFile()
添加的js,就不会添加/admin
,就能正常加载
$this->registerJsFile('plugins/ImageViewer/imageviewer.min.js', ['position' => View::POS_END, 'depends'=>JqueryAsset::class]);
所以想问一下大佬们,怎样设置能让assets不添加这个/admin
?感觉这个文件backend/assets/AppAsset.php
里应该可以设置才对呀。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,经过大量的搜索、仔细的查看文档以及Q群问网友,最后还是我自己解决了,如下代码所示,在components里面添加一个
assetManager
(必须小写开头),在里面就可以重置baseUrl