2012-10-18 10 views
6

Korzystam z następującego kodu, aby opublikować plik css w zasobach.Menedżer zasobów Yii - css z adresem obrazu

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

Rejestruje i style css z powodzeniem pracują w porządku, ale po klasy css za pomocą obrazu.

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

nie ładuje się, jest odsyłany do ścieżki wewnątrz folderu zasobów. Jest on szuka obrazu wewnątrz

root/aktywa/images/

Czy istnieje jakiś sposób, aby przekierować adres URL obrazu w CSS do oryginalnej ścieżki, ponieważ nie jestem rejestrację moich zdjęć jako zasoby od teraz.

root/images

+1

Nie ma sensu publikowanie swojego CSS jako zasobu, ale pozostawienie go bezczynnego. Albo tworzysz samowystarczalny komponent (w takim przypadku publikujesz wszystko), albo go nie tworzysz (w takim przypadku nie publikuj niczego). – Jon

+0

@Jon, jeśli opublikuję obrazy w zasobach, nie będzie przechowywać tej samej nazwy folderu (obrazów) w moim folderze zasobów. będzie to jak '/ root/assets/4s431e/icon.png'? – Suriya

+0

Rozszerzyłem komentarz do odpowiedzi. – Jon

Odpowiedz

11

asset managerem Yii jest zaprojektowany, aby umożliwić zapakować składniki, takie jak widżety UI w powściągliwy sposób (alternatywą jest ręcznie rozdzielać różne pliki w różnych miejscach wewnątrz aplikacji struktura katalogów). Więc jeśli ma sens publikowanie niczego, co jest jako zasób ze swojego komponentu, sensowne jest opublikowanie wszystkiego, co jako zasób.

W takim przypadku należy uporządkować komponent, np. jak

component/ 
    assets/ 
     css/ 
     images/ 
     js/ 

Następnie, publikować całą assets/ katalogu przy użyciu menedżera zasobów Yii, zamiast publikowania plików jeden po drugim. Jeśli to zrobisz, będą w końcu jest publikowane w sposób jak

assets/ 
    random_hash/ 
     css/ 
     images/ 

Twój CSS może po prostu odwołać się do obrazów z url(../images/image.jpg) bez konieczności znać wartość random_hash.

+0

Moje css nie widzi obrazów ((W random_hash/jest tylko plik css. – frops

Powiązane problemy