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 на исходный путь, потому что я не регистрирую мои изображения в качестве активов на данный момент.

Корневые / изображения

1 ответ

Решение

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

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

component/
    assets/
        css/
        images/
        js/

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

assets/
    random_hash/
        css/
        images/

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

Другие вопросы по тегам