2018-07-19 11:24:11 1747次浏览 1条回答 0 悬赏 10 金钱

资源存在一个不可读的目录,所以用了sourcePath将资源发布在一个自定义的web可读目录,但是动态注册的资源文件,无法发布,请问应该如何处理?谢谢!
捕获.PNG
另外,依赖产生的0="backend\assets\Asset"是否可以去掉,看起来很不友好。

补充于 2018-07-20 14:24
class Asset extends AssetBundle
{
    public $sourcePath = '@webroot/assets';
    
//    public $basePath = '@webroot';
//    public $baseUrl = '@web';
    public $css = [
        'css/vendors.css',
        'vendors/css/extensions/sweetalert.css',
        'vendors/css/ui/prism.min.css',
        'css/app.css',
        'css/core/menu/menu-types/vertical-menu.css',
        'css/core/colors/palette-gradient.css',
        'css/style.css'
    ];
    public $js = [
        'vendors/js/vendors.min.js',
        'vendors/js/ui/prism.min.js', 
        'vendors/js/extensions/sweetalert.min.js',
        'js/core/app-menu.js',
        'js/core/app.js',
        'js/main.js'
    ];
    public $depends = [
//         'yii\web\YiiAsset',
//         'yii\bootstrap\BootstrapAsset',
    ];
    
    /**
     * 动态注册JS文件
     *
     * @param $view Object 注册对象
     * @param $file String Js文件路径
     */
    public static function addScript($view, $file)
    {
        $view->registerJsFile($file, [self::className(), 'depends' => 'backend\assets\Asset']);
    }
    
    /**
     * 动态注册CSS文件
     *
     * @param $view Objec 注册对象
     * @param $file String Css文件路径
     */
    public static function addCss($view, $file)
    {
        $view->registerCssFile($file, [self::className(), 'depends' => 'backend\assets\Asset']);
    }
    
    public static function registerJs($view, $js)
    {
        $view->registerJs($js);
    }
    
    public static function registerCss($view, $css)
    {
        $view->registerCss($css);
    }
}
补充于 2018-07-20 14:26

这个是我的资源管理

class Asset extends AssetBundle
{
    public $sourcePath = '@webroot/assets';
    
//    public $basePath = '@webroot';
//    public $baseUrl = '@web';
    public $css = [
        'css/vendors.css',
        'vendors/css/extensions/sweetalert.css',
        'vendors/css/ui/prism.min.css',
        'css/app.css',
        'css/core/menu/menu-types/vertical-menu.css',
        'css/core/colors/palette-gradient.css',
        'css/style.css'
    ];
    public $js = [
        'vendors/js/vendors.min.js',
        'vendors/js/ui/prism.min.js', 
        'vendors/js/extensions/sweetalert.min.js',
        'js/core/app-menu.js',
        'js/core/app.js',
        'js/main.js'
    ];
    public $depends = [
//         'yii\web\YiiAsset',
//         'yii\bootstrap\BootstrapAsset',
    ];
    
    /**
     * 动态注册JS文件
     *
     * @param $view Object 注册对象
     * @param $file String Js文件路径
     */
    public static function addScript($view, $file)
    {
        $view->registerJsFile($file, [self::className(), 'depends' => 'backend\assets\Asset']);
    }
    
    /**
     * 动态注册CSS文件
     *
     * @param $view Objec 注册对象
     * @param $file String Css文件路径
     */
    public static function addCss($view, $file)
    {
        $view->registerCssFile($file, [self::className(), 'depends' => 'backend\assets\Asset']);
    }
    
    public static function registerJs($view, $js)
    {
        $view->registerJs($js);
    }
    
    public static function registerCss($view, $css)
    {
        $view->registerCss($css);
    }
}

下面这个是我在视图中动态注册的资源

<?php 
use backend\assets\Asset;

Asset::addScript($this, '@web/assets/vendors/js/forms/listbox/jquery.multi-select.js');
Asset::addCss($this, '@web/assets/vendors/css/forms/listbox/multi-select.css');
?>
  • 回答于 2018-07-19 13:35 举报

    你看一下是否用到 multi-select,这个资源的配置有问题。

    8 条回复
    回复于 2018-07-19 19:52 回复

    需要用到,但是这个资源是使用registerJsFile方法动态加载的,没办法发布

    回复于 2018-07-19 21:28 回复

    把代码贴出来

    回复于 2018-07-20 14:28 回复

    贴出来了,网卡了一下,重复了,请您帮我看看

    回复于 2018-07-20 14:35 回复

    registerCssFile 方法用错了:

    public static function addCss($view, $file)
    {
        $view->registerCssFile($file, ['depends' => 'backend\assets\Asset']);
    }
    
    回复于 2018-07-20 18:44 回复

    请您帮助我具体指出错误,谢谢

    回复于 2018-07-21 09:08 回复

    你的用法是最初的,后来的版本参数变了

    回复于 2018-07-23 10:36 回复

    请问有相关文档吗?我找了一会,没找到变动的说明

    回复于 2018-07-23 10:39 回复

    不用找了,这个语法从正式版就改了,alpha 和 beta 版你是那样写的。

您需要登录后才可以回答。登录 | 立即注册
asceee
职场新人

asceee

注册时间:2018-07-19
最后登录:2020-12-10
在线时长:8小时33分
  • 粉丝1
  • 金钱5
  • 威望0
  • 积分85

热门问题