2016-09-22 5 views
1

В Yii2 существует метод $this->registerJs(), доступный в представлениях для регистрации встроенного JS. Я использую его, как описано в documentation:Yii2: registerJs() неявно включает JqueryAsset, как избежать

$js = "...prepare js code..."; 
$this->registerJs($js, View::POS_READY); 

Проблема заключается в том, что с View::POS_READY (который по умолчанию для второго аргумента) registerJs() неявно требует yii\web\JqueryAsset (source code).

Но я уже включил JQuery в свой собственный пакет активов - это all-min.js, есть Jquery + плагины, минированные и объединенные в одном файле. Yii2 включает в себя JqueryAsset, поэтому дублирует Jquery на результирующей странице.

Как сообщить Yii2, что JQuery уже включен или избежать этого дублирования каким-либо другим способом?

ответ

2

Вы можете легко настроить набор ресурсов jquery, сконфигурировав assetManager в конфигурации компонентов приложения (обычно config/web.php).

Вы можете отключить один или несколько пучков активов, связывая false с именами жгутов активов, которые вы хотите отключить:

'assetManager' => [ 
     'bundles' => [ 
      'yii\web\JqueryAsset' => false, 
     ], 
    ], 

Подробнее: http://www.yiiframework.com/doc-2.0/guide-structure-assets.html#customizing-asset-bundles