JqueryAsset подключить в header-е страницы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Maksat1991
Сообщения: 57
Зарегистрирован: 2016.10.16, 00:15

JqueryAsset подключить в header-е страницы

Сообщение Maksat1991 »

Подключаю jquery как зависимость в AssetBundle, jquery подключается самым первым среди всех js-файлов. Но все js-файлы включая библиотеку jquery подключаются в конце страницы. А мне надо подключить именно в header-е. Потому что иначе мои $js-селекторы которые я использую на страничке не работают, $ is not defined;

Или же мне нужно будет все свои js-скрипты писать через $this->registerJs();
phpshko
Сообщения: 260
Зарегистрирован: 2015.03.21, 02:49

Re: JqueryAsset подключить в header-е страницы

Сообщение phpshko »

Код: Выделить всё

class AppAsset extends AssetBundle
{
	...
	public $jsOptions = ['position' => \yii\web\View::POS_HEAD];
}
Maksat1991
Сообщения: 57
Зарегистрирован: 2016.10.16, 00:15

Re: JqueryAsset подключить в header-е страницы

Сообщение Maksat1991 »

phpshko писал(а): 2017.03.30, 18:58

Код: Выделить всё

class AppAsset extends AssetBundle
{
	...
	public $jsOptions = ['position' => \yii\web\View::POS_HEAD];
}
Я не могу так сделать, потому что в таком случае я подключу все свои js-скрипты в header, а мне надо в header подключить только jquery.
А еще я не могу сделать public $jsOptions = ['position' => \yii\web\View::POS_HEAD]; для JqueryAsset, т.к. этот JqueryAsset находится в папке vendor и будет перезатираться при каждом обновлении composer update.
phpshko
Сообщения: 260
Зарегистрирован: 2015.03.21, 02:49

Re: JqueryAsset подключить в header-е страницы

Сообщение phpshko »

Maksat1991 писал(а): 2017.03.30, 19:14
phpshko писал(а): 2017.03.30, 18:58

Код: Выделить всё

class AppAsset extends AssetBundle
{
	...
	public $jsOptions = ['position' => \yii\web\View::POS_HEAD];
}
Я не могу так сделать, потому что в таком случае я подключу все свои js-скрипты в header, а мне надо в header подключить только jquery.
А еще я не могу сделать public $jsOptions = ['position' => \yii\web\View::POS_HEAD]; для JqueryAsset, т.к. этот JqueryAsset находится в папке vendor и будет перезатираться при каждом обновлении composer update.
Попробуйте в конфиге

Код: Выделить всё

'assetManager' => [
            'bundles' => [
                'yii\web\JqueryAsset' => [
                    'jsOptions' => ['position' => \yii\web\View::POS_HEAD]
                ],
            ],
        ],
Maksat1991
Сообщения: 57
Зарегистрирован: 2016.10.16, 00:15

Re: JqueryAsset подключить в header-е страницы

Сообщение Maksat1991 »

phpshko писал(а): 2017.03.30, 19:25
Maksat1991 писал(а): 2017.03.30, 19:14
phpshko писал(а): 2017.03.30, 18:58

Код: Выделить всё

class AppAsset extends AssetBundle
{
	...
	public $jsOptions = ['position' => \yii\web\View::POS_HEAD];
}
Я не могу так сделать, потому что в таком случае я подключу все свои js-скрипты в header, а мне надо в header подключить только jquery.
А еще я не могу сделать public $jsOptions = ['position' => \yii\web\View::POS_HEAD]; для JqueryAsset, т.к. этот JqueryAsset находится в папке vendor и будет перезатираться при каждом обновлении composer update.
Попробуйте в конфиге

Код: Выделить всё

'assetManager' => [
            'bundles' => [
                'yii\web\JqueryAsset' => [
                    'jsOptions' => ['position' => \yii\web\View::POS_HEAD]
                ],
            ],
        ],

Не получилось. Ошибка
Setting read-only property: yii\web\Application::assetManager
phpshko
Сообщения: 260
Зарегистрирован: 2015.03.21, 02:49

Re: JqueryAsset подключить в header-е страницы

Сообщение phpshko »

Вы в секцию components добавляли?
Maksat1991
Сообщения: 57
Зарегистрирован: 2016.10.16, 00:15

Re: JqueryAsset подключить в header-е страницы

Сообщение Maksat1991 »

О, добавил в секцию components и заработало. Спасибо.
Ответить