Yii2资产:如何在CSS文件中使用图像资源?

时间:2017-03-28 04:18:53

标签: css yii2 assets yii2-extension yii2-module

我想创建一个包含AssetBundle的扩展,它提供了一个简单的静态CSS文件。在那个静态CSS文件中,我想使用一个图像文件,它也是扩展的一部分。

我如何知道图像文件的URL,以便在CSS文件中使用它?

如果我将图片文件注册为资产,则会获得一个我们无法预测的随机网址!因此,做出类似的事情是不可能的:

.some-selector { background: url('/assets/?????/image.jpg'); }

那么,怎么办呢?

有关进一步说明,此处是此类扩展程序的示例文件夹结构:

  • extension/Widget.php - 一些注册我们的AssetBundle的小部件
  • extension/AssetBundle.php - 注册css的资产包
  • extension/assets/css/style.css - css
  • extension/assets/images/image.jpg - 我们要在style.css
  • 中使用的图片

1 个答案:

答案 0 :(得分:1)

在这种情况下,我建议在资产定义中包含一个新的css文件。在这种情况下,image和css文件将位于assets文件夹中,您可以指定相对路径,而不是绝对路径。 例如 /assets/a4dc56/image.jpg

/assets/a4dc56/style.css,内容如下:

.some-selector {
    background: url('image.jpg');
}