web-dev-qa-db-fra.com

Yii2 BootstrapAsset ne charge pas bootstrap.js

yii\bootstrap\BootstrapAsset ne charge pas bootstrap.js et des éléments tels que "modal" et d'autres ne fonctionnent pas.

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

Ici est l'écran des bibliothèques, bootstrap.js y manque.

25
ccdiego5

Tu peux l'essayer:

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

Si vous regardez le contenu de BootstrapAsset bundle, vous verrez qu'il n'y a pas de bootstrap.js:

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

Pour bootstrap.js, un autre groupe d'actifs existe et s'appelle BootstrapPluginAsset:

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

Le nom complet de la classe avec l'espace de noms est: yii\bootstrap\BootstrapPluginAsset.

Il est automatiquement inclus lorsque vous utilisez des widgets d'amorçage dépendants de js tels que yii\bootstrap\Modal, etc.

29
arogachev

quand vous ajoutez une dépendance

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

son seul ajout bootstrap css

pendant que vous ajoutez 

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

ses ajoutent bootstrap css ainsi que js 

7
Kalpesh Desai

Vous pouvez le faire dans le fichier de configuration principal (config/web.php):

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

Vous pouvez essayer ceci dans 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',
];
}

et aussi changer dans vous config/main.php

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

J'ai essayé ces étapes qui résoudront mon problème, c'est tout pour votre commentaire

0
Shamsi786