Assets

Всем привет!

Делали в своем проекте модуль один, нужна была пагинация, CPager почему-то создает папку assets с css файлом pager.css, нашел где папку эту поменять, но вот мне непонятно, а зачем это вообще надо? почему бы не иметь просто один файл pager.css в нужной мне директории, он создает кучу генерирует зачем-то. Кто пожскажет как это вылечить и вообще зачем это? заранее спасибо.

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

удобство сомнительное.  ???

У нас в проекте сделано так:

_framework

protected

public

В public хранятся css img и js и все такое. Нельзя ли отключить assets и пристроить его css туда?

Запросто. ВЕЗДЕ, где используется CClientScript (методы registerScript, registerScriptFile, registerCss, registerCssFile) передаешь не то, что возвращает CHtml::asset(), а свой путь.

Удобство, на самом деле, офигительное, так как позволяет создавать легко переносимые компоненты - перетащил папку с ним и все работает, не вспоминаешь, куда же ты должен положить яваскрипт или там ЦСС (или откуда взять).