YII Asset Manager语言 - CSS带有图像URL



我正在使用以下代码将我的CSS文件发布给资产。

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

它成功地注册了CSS,样式工作正常,但是使用图像的CSS类以下CSS类。

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

没有加载,它被转介给资产内部文件夹中的路径。它正在寻找

内部的图像

根/资产/图像/

是否有任何方法可以将CSS中的图像URL重定向到原始路径,因为我到目前为止没有将图像注册为资产。

根/图像

yii的资产管理器旨在让您以独立的方式包装诸如UI小部件之类的组件(替代方法是在应用程序目录结构内的不同位置手动分发各种文件)。因此,如果将出版作为您的组件的资产是有意义的,那么将所有内容出版为资产是有意义的。

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

component/
    assets/
        css/
        images/
        js/

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

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

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