Требования к проекту Я должен использовать другую версию jQuery, отличную от той, которая поставляется с Yii2. Я знаю, что можно отключить с помощью:Yii 2 и jQuery
'assetManager' => [
'bundles' => [
// you can override AssetBundle configs here
'yii\web\JqueryAsset' => [
'sourcePath' => null,
'js' => []
],
],
],
Тогда я иду к AppAsset:
class AppAsset extends AssetBundle
{
public $sourcePath = "@app/themes/v1/assets";
public $jsOptions = [ 'position' => \yii\web\View::POS_END ];
public $js = [
"js/lib/jquery/jquery-1.9.1.js",
];
}
Но это приносит один большой вопрос, Jquery нагрузки после yii.validation и т.д.:
</script><script src="/assets/5b466ff1/yii.js?v=1465857632"></script>
<script src="/assets/5b466ff1/yii.validation.js?v=1465857632"></script>
<script src="/assets/5b466ff1/yii.activeForm.js?v=1465857632"></script>
<script src="/assets/98d185b3/js/lib/jquery/jquery-1.9.1.js?v=1466702133"></script>
Мое временное решение меняет POS_END на POS_HEAD, но это влияет на страницу SEO правильно? Насколько я знаю, считается плохой практикой для загрузки js на голове.
Так что мой вопрос:
Как я могу загрузить JQuery из моих тематических активов, используя POS_END и загрузки, прежде чем yii.validation и т.д.?
Возможность добавить его на веб-сайте/js/jquery.js, но я бы предпочел сохранить его в комплекте с активами.
Любые идеи?
Update:
Добавление это AppAsset позволяет мне иметь контроль над самой темой. Это чище, чем изменение глобальной конфигурации.
public function init()
{
parent::init();
Yii::$app->assetManager->bundles['yii\\web\\JqueryAsset'] = [
'js' => ['lib/jquery/jquery-1.9.1.js'],
'sourcePath' => '@app/themes/v1/assets/js'
];
}
Так просто !!!, я не пробовал это. Благодаря!! – Eduardo