Yii资产管理器-带有图像url的css

Yii资产管理器-带有图像url的css,css,yii,assets,brokenimage,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: u

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

根/图像


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

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

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

assets/
    random_hash/
        css/
        images/

然后,您的CSS可以简单地使用
url(../images/image.jpg)
引用图像,而无需知道
random\u hash的值

将CSS作为资产发布没有多大意义,只需保留图像即可。要么您正在设计一个自包含组件(在这种情况下发布所有内容),要么您没有(在这种情况下不发布任何内容)。@Jon,如果我将图像发布到资源,它将不会在我的资源文件夹中保留相同的文件夹名(图像)。这就像
/root/assets/4s431e/icon.png
?我将注释扩展为一个答案。我的css没有看到图像(在随机散列中/只是css文件)。