我使用以下代码将我的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中的图片网址重定向到原始路径,因为我现在没有将我的图片注册为资产。
根/图像
答案 0 :(得分:11)
Yii的资产管理器旨在让您以自包含的方式打包UI小部件等组件(另一种方法是在应用程序目录结构中的不同位置手动分发各种文件)。因此,如果将任何作为资产从组件发布是有意义的,那么将所有作为资产发布是有意义的。
在这种情况下,您应该构建组件,例如如
component/
assets/
css/
images/
js/
然后,使用Yii的资产管理器发布整个assets/
目录,而不是逐个发布文件。如果你这样做,它们最终将以
assets/
random_hash/
css/
images/
您的CSS可以简单地引用url(../images/image.jpg)
的图片,而无需知道random_hash
的值。