Assets aka Ресурсы

Вопросы об установке, настройке и работе самого фреймворка

Assets aka Ресурсы

Сообщение mc-bear » 2009.06.10, 23:12

Привет.

Есть ли тут люди кто разобрался с этими ассетами :( В документации всего один абзац и тот мимо кассы. Из АПИ понял что ассеты это ресурсы которые могут из компонентов копироваться в спец.папку чтоб отдать пользователю по доступному линку. Вроде бы все просто, но и не совсем.
В папке /assets появляются папки с файлами, но в папках есть одинаковые файлы. Если кто разобрался напишите по русски в двух словах, что такое ассеты, потому как предчувствую, что очень полезная вещь в умелых руках :)

Спасибо.
Аватара пользователя
mc-bear
 
Сообщения: 549
Зарегистрирован: 2009.04.02, 21:42
Откуда: Chisinau, Moldova

Re: Assets aka Ресурсы

Сообщение Sam Dark » 2009.06.11, 11:57

Основная идея верна. Asset копируется из защищённой папки в публичную. Ещё один плюс — перед выводом с ними можно что-нибудь сделать. Например, объединить CSS в один файл или минифицировать JS.

Вот кусочек кода для подключения ресурсов:
Код: Выделить всё
// @see http://www.yiiframework.com/doc/cookbook/12/
$cs=Yii::app()->clientScript;
$am Yii::app()->assetManager;
$am->publish('js/jquery.autolineheight.js');
$am->publish('js/jqem-compressed.js');
$am->publish('js/common.js');

$cs->registerCoreScript('jquery');
$cs->registerScriptFile($am->getPublishedUrl('js/jquery.autolineheight.js'), CClientScript::POS_HEAD);
$cs->registerScriptFile($am->getPublishedUrl('js/jqem-compressed.js'), CClientScript::POS_HEAD);
$cs->registerScriptFile($am->getPublishedUrl('js/common.js'), CClientScript::POS_HEAD);
 
Аватара пользователя
Sam Dark
Администратор
 
Сообщения: 1693
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж

Re: Assets aka Ресурсы

Сообщение mc-bear » 2009.06.11, 15:45

и в представлении не надо ничего прописывать?
и как быть с тем что в папке ассетов у меня несколько папок типа "tdlho" и в них могут встречаться одинаковые файлы.
Аватара пользователя
mc-bear
 
Сообщения: 549
Зарегистрирован: 2009.04.02, 21:42
Откуда: Chisinau, Moldova

Re: Assets aka Ресурсы

Сообщение Sam Dark » 2009.06.11, 16:12

По идее ничего дополнительно прописывать не надо.

Содержимое папочки с ресурсами лучше не трогать. Разные папки там — ревизии. т.е. берутся файлы последней ревизии. При изменении они копируются заново.
Аватара пользователя
Sam Dark
Администратор
 
Сообщения: 1693
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж

Re: Assets aka Ресурсы

Сообщение mc-bear » 2009.06.11, 19:42

Sam Dark писал(а):Разные папки там — ревизии. т.е. берутся файлы последней ревизии. При изменении они копируются заново.


и как ими управлять или оставлять в надежде что дисковое пространсво никогда не закончится?
Аватара пользователя
mc-bear
 
Сообщения: 549
Зарегистрирован: 2009.04.02, 21:42
Откуда: Chisinau, Moldova

Re: Assets aka Ресурсы

Сообщение Sam Dark » 2009.06.12, 00:39

Можно попробовать вычистить. Должны вроде заново записаться.
Аватара пользователя
Sam Dark
Администратор
 
Сообщения: 1693
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж

Re: Assets aka Ресурсы

Сообщение mc-bear » 2009.07.02, 21:58

Вернусь к ассетам.

Нужно составить css содержащие свойства
Код: Выделить всё
a {
background-image:url("ассет");
}


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

Как решить?
Аватара пользователя
mc-bear
 
Сообщения: 549
Зарегистрирован: 2009.04.02, 21:42
Откуда: Chisinau, Moldova

Re: Assets aka Ресурсы

Сообщение Sam Dark » 2009.07.03, 12:33

М… например, писать CSS динамически. Но вообще мне такая идея не очень нравится.
Аватара пользователя
Sam Dark
Администратор
 
Сообщения: 1693
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж

Re: Assets aka Ресурсы

Сообщение Caveman » 2009.07.03, 13:32

Sam Dark писал(а):М… например, писать CSS динамически. Но вообще мне такая идея не очень нравится.

Так а других вариантов и нет. Вписать некий уже опубликованный ресурс в "background-image:url("ассет");" можно только динамически, ведь нельзя быть уверенным в пути к ресурсу.
Вот так строится название папки, в которую кидается ресурс:
Код: Выделить всё
return sprintf('%x',crc32($path.Yii::getVersion())); 
Где $path - имя файла или папки, в которой он находится (можно указать при публикации).

То есть, должно быть что-то типа этого:
Код: Выделить всё
$bgimage = $assetManager->publish('путь к нужному изображению');

Где-то далее добавление к стилям:
{
 background-image:url($bgimage);
}
 


Но это как-то не по фен-шую, согласен с SamDark'ом
Аватара пользователя
Caveman
 
Сообщения: 84
Зарегистрирован: 2009.04.04, 20:56
Откуда: Москва

Re: Assets aka Ресурсы

Сообщение mc-bear » 2009.07.03, 16:02

Друзья спс, но необходимость отпала :)
В моем случае достточно всего-лишь ури в css указывать отностительно файла стиля.
Аватара пользователя
mc-bear
 
Сообщения: 549
Зарегистрирован: 2009.04.02, 21:42
Откуда: Chisinau, Moldova

След.

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: MaxOtto и гости: 1