очередь загрузки js фалов yii2 фреймворке

243
08 января 2018, 11:06

я использую сборшики для js файлов своем проекте и отключил собственные jquery yii в конфиге

вот в чем проблема при валидации формы yii.js скрипты не работаю так как они подключаются первыми выглядит так

<script src="/assets/a20e19d8/yii.validation.js"></script> 
<script src="/assets/a20e19d8/yii.activeForm.js"></script> 
 
<script src="/dist/assets/js/vendor.bundle.js"></script> 
<script src="/dist/assets/js/app.bundle.js"></script>

а нужно так

<script src="/dist/assets/js/vendor.bundle.js"></script> 
<script src="/dist/assets/js/app.bundle.js"></script> 
 
<script src="/assets/a20e19d8/yii.validation.js"></script> 
<script src="/assets/a20e19d8/yii.activeForm.js"></script>

ошибка в том что jquery не определена
нашел решение в том что бы подключать его в на чале body

public $jsOptions = ['position' => \yii\web\View::POS_HEAD];

но хотелось бы что бы страница грузилась быстрее и не подключать огромный файл в начал и еще вопрос можно ли изменить имена этих файлов yii.js на my-yii.js

Answer 1

Вы можете создать новый класс ассет

class BundleAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $js = [
         '/assets/js/vendor.bundle.js'
         '/assets/js/app.bundle.js'
    ];
}

А затем указать его в AppAsset (на чистом шаблоне Yii2 Advanced он регистрируется в layouts/main.php)

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $depends = [
        'frontend\assets\BundleAsset',
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}
READ ALSO
Проблема с переводом массива json в массив php

Проблема с переводом массива json в массив php

Нужно отредактировать массив json и внести в него елемент $spi из инпута через постПроблема заключается в том, что у меня не получается достать...

240
Работа с миграциями в Laravel

Работа с миграциями в Laravel

Такие вопросы по миграциям в Laravel:

209