6

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

根/图像

4

1 回答 1

11

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

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

component/
    assets/
        css/
        images/
        js/

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

assets/
    random_hash/
        css/
        images/

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

于 2012-10-18T12:33:15.843 回答