Yii资产经理 - 带图像网址的CSS

时间:2012-10-18 12:05:55

标签: css yii assets brokenimage

我使用以下代码将我的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中的图片网址重定向到原始路径,因为我现在没有将我的图片注册为资产。

  

根/图像

1 个答案:

答案 0 :(得分:11)

Yii的资产管理器旨在让您以自包含的方式打包UI小部件等组件(另一种方法是在应用程序目录结构中的不同位置手动分发各种文件)。因此,如果将任何作为资产从组件发布是有意义的,那么将所有作为资产发布是有意义的。

在这种情况下,您应该构建组件,例如如

component/
    assets/
        css/
        images/
        js/

然后,使用Yii的资产管理器发布整个assets/目录,而不是逐个发布文件。如果你这样做,它们最终将以

的方式发布
assets/
    random_hash/
        css/
        images/

您的CSS可以简单地引用url(../images/image.jpg)的图片,而无需知道random_hash的值。