Yii2中引用vendor中的js和css

以AdminLte为例,register.html在使用的时候无法显示单选框,查看元素发现少了iCkeck.js文件

直接使用Yii2的资源管理包: assets目录下新建一个Asset文件(AdminLtePluginAsset.php):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?php
namespace app\assets;
use yii\web\AssetBundle;
class AdminLtePluginAsset extends AssetBundle
{
    public $sourcePath = '@vendor/almasaeed2010/adminlte/plugins';
    public $js = [
        'iCheck/icheck.min.js'
        // more plugin Js here
    ];
    public $css = [
        'iCheck/all.css'
        // more plugin CSS here
    ];
    public $depends = [
        // 注明依赖关系
        'dmstr\web\AdminLteAsset',
    ];
}

使用: 更改main.php 或者 main-login.php(主要看在那个页面使用)

1
2
3
4
5
6
7
<?php
if (Yii::$app->controller->action->id === 'signup') {
    // AdminLtePluginAsset是依赖于AdminLteAsset的,所以可以取消AdminLteAsset的注册
    app\assets\AdminLtePluginAsset::register($this);
}else{
    dmstr\web\AdminLteAsset::register($this);
}

现在就可以完美使用了,其他的js文件类似处理