Yii Asset Manager — css с URL-адресом изображения

Я использую следующий код для публикации моего файла css в активах.

Yii::app()->clientScript->registerCssFile( Yii::app()->assetManager->publish( Yii::getPathOfAlias('application').'/../css/combo-autocomplete.css' ));

Он успешно регистрирует css, и стили работают нормально, но следующий класс css использует изображение.

.ui-icon {
   background-image: url(../images/down-arrow.png); 
}

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

корень/активы/изображения/

Есть ли способ перенаправить URL-адрес изображения в css на исходный путь, потому что на данный момент я не регистрирую свои изображения в качестве активов.

корень/изображения


person Suriya    schedule 18.10.2012    source источник
comment
Не имеет особого смысла публиковать свой CSS как актив, но оставлять изображения голыми. Либо вы разрабатываете автономный компонент (в этом случае публикуете все), либо нет (в этом случае ничего не публикуете).   -  person Jon    schedule 18.10.2012
comment
@Jon, если я опубликую изображения в активах, это не сохранит то же имя папки (изображения) внутри папки моих активов. это будет как /root/assets/4s431e/icon.png ?   -  person Suriya    schedule 18.10.2012
comment
Я расширил комментарий до ответа.   -  person Jon    schedule 18.10.2012


Ответы (1)


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

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

component/
    assets/
        css/
        images/
        js/

Затем опубликуйте весь каталог assets/ с помощью диспетчера активов Yii, а не публикуйте файлы по одному. Если вы сделаете это, они в конечном итоге будут опубликованы таким образом, как

assets/
    random_hash/
        css/
        images/

Затем ваш CSS может просто ссылаться на изображения с url(../images/image.jpg) без необходимости знать значение random_hash.

person Jon    schedule 18.10.2012
comment
Мой css не видит изображения (( В random_hash/ находится только файл css. - person frops; 02.07.2013