Yii2添加request的baseUrl后加载的资源url也会加上这个baseUrl导致加载的不对

发布于 2022-09-12 13:06:36 字数 1769 浏览 20 评论 0

我的是Advanced版本,我frontend和backend是单独用不同域名的,由于怕权限管理里面跟前台的路由有相同的,所以就在后台的路径里添加个/admin

具体是在backend的main.phpcomponents里添加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,导致无法加载
image.png

我试了改这个文件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]);

image.png

所以想问一下大佬们,怎样设置能让assets不添加这个/admin?感觉这个文件backend/assets/AppAsset.php里应该可以设置才对呀。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空袭的梦i 2022-09-19 13:06:36

好吧,经过大量的搜索、仔细的查看文档以及Q群问网友,最后还是我自己解决了,如下代码所示,在components里面添加一个assetManager(必须小写开头),在里面就可以重置baseUrl

'components' => [
    'assetManager' => [
        //after settting components.request.baseUrl='/admin', the assets url will automatically add "/admin" to its url
        //to avoid this, we can set the asset baseUrl in components.assetManager.baseUrl, set it to '/assets'
        'baseUrl' => '/assets',
    ],
    'request' => [
        'csrfParam' => '_csrf-backend',
        //All requests will add "/admin",e.g:
        //www.example.com/controller/action will change to
        //www.example.com/admin/controller/action
        'baseUrl' => '/admin',
    ],
    // other configs....
],
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文