Подтвердить что ты не робот

Yii2 BootstrapAsset не загружает bootstrap.js

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',
    ];    
}

Здесь находится экран библиотек, там bootstrap.js отсутствует.

4b9b3361

Ответ 1

Вы можете попробовать:

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',
];
}

Ответ 2

Если вы посмотрите на содержимое пакета BootstrapAsset, вы увидите, что нет bootstrap.js:

class BootstrapAsset extends AssetBundle
{
    public $sourcePath = '@bower/bootstrap/dist';
    public $css = [
        'css/bootstrap.css',
    ];
}

Для 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',
    ];
}

Полное имя класса с пространством имен: yii\bootstrap\BootstrapPluginAsset.

Он включается автоматически, когда вы используете js-зависимые виджеты-загрузчики, такие как yii\bootstrap\Modal и т.д.

Ответ 3

когда вы добавляете зависимость

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

его только добавить bootstrap css

пока вы добавляете

 public $depends = [
     'yii\bootstrap\BootstrapPluginAsset',
    ];

добавляет bootstrap css, а также js

Ответ 4

Вы можете сделать это в главном файле конфигурации (config/web.php):

'components' => [
    'assetManager' => [
        'bundles' => [
            'yii\bootstrap\BootstrapAsset' => [
                'js' => ['js/bootstrap.js'],
            ],
        ],
    ],
],

Ответ 5

Вы можете попробовать это в AppAsset.php

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',
];
}

а также изменить в вашем config/main.php

'components' => [
'assetManager' => [
    'bundles' => [
        'yii\bootstrap\BootstrapAsset' => [
            'js' => ['js/bootstrap.min.js'],
        ],
    ],
],
],

Я пробовал эти шаги, которые решают мою проблему, которая для всех для вашего комментария