Yii2 BootstrapAsset未加载bootstrap.js

ccd*_*go5 27 javascript yii2 twitter-bootstrap-3

yii\bootstrap\BootstrapAsset没有加载bootstrap.js,像"模态"和其他元素不起作用.

class AppAsset extends AssetBundle {
    public $basePath = '@webroot';

    public $baseUrl = '@web';

    public $css = [    
        /* theme */
        'css/site.css',

        /* jasny bootstrap */
        'public/jasny/css/jasny-bootstrap.min.css',

        /* font awesome */
        'public/font-awesome-430/css/font-awesome.min.css',

        /* font roboto */
        'public/fonts/roboto/roboto.css',

        /* Data Tables */
        'public/datatables/extensions/integration/bootstrap/3/dataTables.bootstrap.css',  
    ];

    public $js = [    
        /* jasny bootstrap  */
        'public/jasny/js/jasny-bootstrap.min.js',

        /* Data Tables  */
        'public/datatables/datajs.js',
        'public/datatables/media/js/jquery.dataTables.min.js',
        'public/datatables/extensions/integration/bootstrap/3/dataTables.bootstrap.js',               
    ];

    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];    
}
Run Code Online (Sandbox Code Playgroud)

是图书馆的屏幕,bootstrap.js在那里缺失.

aro*_*hev 29

如果你看一下BootstrapAssetbundle 的内容,你会发现没有bootstrap.js:

class BootstrapAsset extends AssetBundle
{
    public $sourcePath = '@bower/bootstrap/dist';
    public $css = [
        'css/bootstrap.css',
    ];
}
Run Code Online (Sandbox Code Playgroud)

对于bootstrap.js另一个资产包存在并且它被称为BootstrapPluginAsset:

class BootstrapPluginAsset extends AssetBundle
{
    public $sourcePath = '@bower/bootstrap/dist';
    public $js = [
        'js/bootstrap.js',
    ];
    public $depends = [
        'yii\web\JqueryAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}
Run Code Online (Sandbox Code Playgroud)

带命名空间的完整类名是:yii\bootstrap\BootstrapPluginAsset.

当您使用js依赖引导小部件(例如yii\bootstrap\Modal等)时,它会自动包含在内.

  • 是的,您可以将其包含在资产包的"依赖"部分中. (2认同)

小智 20

你可以尝试一下:

class AppAsset extends AssetBundle{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
    'css/mystyle.css',
];
public $js = [

];
public $depends = [
    'yii\web\YiiAsset',
    'yii\bootstrap\BootstrapPluginAsset',
];
}
Run Code Online (Sandbox Code Playgroud)


小智 8

当你添加依赖

 public $depends = [
        'yii\bootstrap\BootstrapAsset',
    ];
Run Code Online (Sandbox Code Playgroud)

它只添加bootstrap css

当你添加

 public $depends = [
     'yii\bootstrap\BootstrapPluginAsset',
    ];
Run Code Online (Sandbox Code Playgroud)

它添加bootstrap css以及js