2016-08-11 4 views
0

私は設定を経由してyii\web\YiiAssetからjQueryとブートストラップを削除することでした私は1ステップnpm/browserifyを使用して自分自身をバンドルしてきたものと引き換えにYii2のバンドルjQueryとブートストラップ資産を前述のよ:Yii2 ActiveFormAssetの依存関係

'components' => [ 
     'assetManager' => [ 
      'bundles' => [ 
       'yii\web\JqueryAsset' => [ 
        'js'=>[] 
       ], 
       'yii\bootstrap\BootstrapPluginAsset' => [ 
        'js'=>[] 
       ], 
       'yii\bootstrap\BootstrapAsset' => [ 
        'css' => [], 
       ], 

      ], 
     ], 
... 
] 

私はこれをフッターに入れたいと思いますが、他のアセットの前にロードしてjQueryを利用できるようにする必要があります。ここで

は私AssetBundleです:dependsで最初に宣言

class AppAssets extends AssetBundle 
{ 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web'; 

    public $depends = [ 
     'app\assets\CustomAssets', 
     'yii\web\YiiAsset', 
    ]; 
} 

私CustomAssetsバンドルで(それは私自身のJSとCSSが含まれている)、私はこの仕事だろうと思うが、私はまた、ページ上のActiveFormを持っていますこれはさまざまなYii資産に依存するits own asset bundleを登録します。私はそのフォームを埋め込むのはここです:

<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?> 
      ... 
<?php ActiveForm::end(); ?> 

は、それはまた、私のスクリプトに依存するように、私はActiveFormAssetdependsを上書きすることができます方法はありますか?

答えて

0

資産バンドルの依存関係が推移しているので、私がJqueryBootstrapバンドルの設定を上書きしてるのと同じ方法で、私はそうのようなyii\web\YiiAssetための設定オーバーライドできるように私には発生しました:

'components' => [ 
    'assetManager' => [ 
     'bundles' => [ 
      ... 
      'yii\web\YiiAsset' => [ 
       'depends' => [ 
        'app\assets\CustomAssets', 
       ], 
      ], 
     ], 
    ], 
    ... 
] 

をしたがって、ActiveFormAssetyii\web\YiiAssetをロードしようとすると、それは自分自身のスクリプト/スタイルへの依存関係を処理し、ロードされ、yii\web\YiiAssetに依存する可能性のある他のアセットもカバーします。

0

私が出荷された資産を置き換えるのではなく、彼らを殺したんでした何:

'bundles'   => [ 
     'yii\bootstrap\BootstrapAsset'  => ['class' => 'common\assets\BootstrapAsset',], 
     'yii\bootstrap\BootstrapPluginAsset' => ['class' => 'common\assets\BootstrapPluginAsset',], 
    ],