2012-10-18 25 views
6

我正在使用下面的代碼發佈我的css文件到資產。Yii資產經理 - 與圖像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); 
} 

未加載,它被引用到資產文件夾內的路徑。據內部

根/資產/圖像尋找圖像/

有什麼辦法來重定向在CSS到原來的路徑圖像的URL,因爲我不是註冊我的圖片作爲資產截至目前。

根/圖像

+1

將CSS作爲資源發佈並沒有多大意義,但是保留裸露的圖片。要麼你正在設計一個獨立的組件(在這種情況下發布一切),或者你沒有(在這種情況下什麼都不發佈)。 – Jon

+0

@Jon,如果我將圖像發佈到資產,它不會在我的資產文件夾中保留相同的文件夾名稱(圖像)。它會像'/ root/assets/4s431e/icon.png'? – Suriya

+0

我將評論擴展爲答案。 – Jon

回答

11

Yii中的資產管理的目的是讓你打包的組件,如一個自包含的方式UI部件(替代是在不同的地方手動分發您的應用程序內的各種文件目錄結構)。因此,如果發佈任何東西作爲您的組件的資產是有意義的,那麼將的所有內容都公佈爲資產是有意義的。

在這種情況下,您應該構建組件,例如作爲

component/ 
    assets/ 
     css/ 
     images/ 
     js/ 

然後,使用Yii的資產管理公司,而不是發佈文件逐一發布整個assets/目錄。如果你這樣做,他們最終將被刊登在地喜歡

assets/ 
    random_hash/ 
     css/ 
     images/ 

那麼你的CSS可以簡單地指與url(../images/image.jpg)圖像,而不需要知道的random_hash值。

+0

我的CSS沒有看到圖像((在random_hash /只是css文件。 – frops