yii2 视图加载js问题

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/bootstrap.css',
        'css/cesi.css?20201111',
        'css/bootstrap-select.min.css?r202012'

    ];
    public $js = [
        ['js/jquery-2.1.4.js'  ],
        ['js/bootstrap.min.js' ],
        ['js/echarts.min.js'  ],
        ['js/bootstrap-select.min.js' ]

    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset'
    ];

}

一般默认的js文件会在底部加载
这样的话会导致页面中script中js的错误

解决办法:
就是将js文件在试图头部进行展示

position=>\yii\web\View::POS_HEAD

public $jsOptions = [  
        'position' => \yii\web\View::POS_HEAD,   // 这是设置所有js放置的位置  
    ]; 

将这段代码放在AppAsset.php文件内部
或者

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/bootstrap.css',
        'css/cesi.css?20201111',
        'css/bootstrap-select.min.css?r202012'

    ];
    //可以调整js加载位置
    public $js = [
        ['js/jquery-2.1.4.js','position' => View::POS_HEAD   ],
        ['js/bootstrap.min.js','position' => View::POS_HEAD  ],
        ['js/echarts.min.js','position' => View::POS_HEAD  ],
        ['js/bootstrap-select.min.js','position' => View::POS_HEAD  ]

    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset'
    ];

}

在View类中进行定义的
POS_HEAD 头部
POS_BEGIN 主体开始位置
POS_END 意味着JavaScript代码块内封闭的jQuery(document).ready()`.
POS_READY
POS_LOAD 内部是用作占位符接收头部分的内容
POS_END 结束位置

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!