Yii资产管理器-带有图像url的css
我使用以下代码将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
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文件)。