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
отсутствует.
Ответы
Ответ 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'],
],
],
],
],
Я пробовал эти шаги, которые решают мою проблему, которая для всех для вашего комментария