Как правильно работать с ресурсами в Yii?
-
16-09-2019 - |
Вопрос
Я заметил, что Yii создает странный набор каталогов (имена вроде 8523d23 или 10s89b92) в каталоге ресурсов, и это происходит даже во время выполнения.Например, в одной из моих таблиц было более 10 записей, включено разбиение на страницы, и в подкаталоге ресурсов появились новые файлы с именем pager.css.
Когда я перевожу свой сайт из режима тестирования в производство, должен ли я скопировать все это или просто создать пустой каталог «активов», и он будет заполнен во время выполнения?
Если я хочу добавить, например, какой-нибудь новый плагин jQuery, как мне действовать?
Например, я хочу добавить jquery.charcounter.js, скопировать ли его в ресурсы или в yii/framework/web/js/source
?Если я сделаю последнее, как мне включить этот файл .js в выходные данные HTML-страницы?
Решение
assets
должен быть каталогом, доступным для записи.Yii заботится об активах.
Позвонив Yii::app()->assetManager->publish()
некоторые таблицы стилей, изображения, сценарии или даже целые каталоги можно поместить в папку, видимую в Интернете.
pager.css
и другие незнакомые файлы создаются виджетами (CLinkPager
например) и другие компоненты (такие как CClientScript
публикует jQuery всякий раз, когда вам это нужно).
Во время развертывания эта папка должна быть пустой, но это не имеет особого значения.
Добавление плагинов никогда не должно выполняться через папки фреймворка.Вы можете разместить их либо в components
dir и при необходимости опубликуйте его во время выполнения или в любой другой удобный видимый каталог (например, images
или css
).
Обновлять
Встроить jquery.charcounter.js
, вставь это components
каталог, затем позвоните
Yii::app()->clientScript->registerScriptFile(
Yii::app()->assetManager->publish(
Yii::getPathOfAlias('application.components').'/jquery.charcounter.js'
),
CClientScript::POS_END
);
Что касается странных названий папок, я твердо уверен, что они представляют собой уникальные хэши (или их часть), поэтому их можно отличить, если приложение использует несколько расширений.
Другие советы
Это разрешит запрос, поскольку дает подробное объяснение папки ресурсов: