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 协议》,转载必须注明作者和本文链接