Подтвердить что ты не робот

Каков правильный способ работы с активами в Yii?

Я замечаю, что Yii создает странный набор каталогов (имена, такие как 8523d23 или 10s89b92) в каталоге ресурсов, и это даже происходит во время выполнения. Например, одна из моих таблиц получила более 10 записей, разбив на страницы, и я получил новые файлы в подкаталоге ресурсов с именем pager.css.

Когда я переношу свой сайт с тестирования на производство, должен ли я копировать все эти данные или просто создать пустой каталог "активы", и он будет заполнен во время выполнения?

Если я хочу добавить, например, новый плагин jQuery, как мне следует продолжить?

Например, я хочу добавить jquery.charcounter.js, скопировать его в активы или yii/framework/web/js/source? Если я сделаю последнее, как мне получить этот .js файл, включенный в вывод HTML-страницы?

4b9b3361

Ответ 1

assets должен быть записываемым каталогом. Yii заботится об активах.

Вызывая Yii::app()->assetManager->publish(), некоторые таблицы стилей, изображений, сценариев или даже целые каталоги могут быть помещены в видимую в Интернете папку.

pager.css и другие не знакомые файлы создаются виджетами (например, CLinkPager), а другие компоненты (например, CClientScript публикует jQuery всякий раз, когда вам это нужно).

Во время развертывания эта папка должна быть пустой, но это не имеет особого значения.

Добавление плагинов никогда не должно выполняться через фреймворки. Вы можете поместить их в каталог components и опубликовать его в случае необходимости или в любой другой удобный видимый каталог (например, images или css).

Update

Чтобы вставить jquery.charcounter.js, поместите его в каталог components, затем вызовите

Yii::app()->clientScript->registerScriptFile(
    Yii::app()->assetManager->publish(
        Yii::getPathOfAlias('application.components').'/jquery.charcounter.js'
    ),
    CClientScript::POS_END
);

Что касается странных имен папок, я твердо уверен, что они уникальные хэши (или часть), поэтому их можно отличить, если приложение использует несколько расширений.