使用资产提供相对图像

时间:2012-02-29 14:51:07

标签: php symfony assets assetic

我正在尝试了解symfony2资产包。 我正在尝试使用一个jquery插件,它使用它自己的css文件。我已将所有内容放入mybundle/Resources/public,然后拆分为images / javascript /和css /

插件css使用相对路径来获取像../images/sprite.png

这样的图像

使用assetic来提供css文件:

{% stylesheets
    '@MyBundle/Resources/public/css/mycss.css' 
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

资产生成的路径为/app_dev.php/css/mycss.css,我猜是正确的。显然,现在相对的图像不再起作用了。因为文件本身位于mybundle / Resources / public而不是/ images /

尝试使用cssrewrite过滤器时,pathes会被重写为: http://server.com/Resources/public/images/sprite.png。但我不正确,文件不在那里。

我如何使用资产相对地提供图像?

1 个答案:

答案 0 :(得分:4)

您可以拼出输出路径,而不是使用cssrewrite。

{% stylesheets output="bundles/zaysoarbiter/css/forms2.css"
    '@ZaysoArbiterBundle/Resources/public/css/forms2.css'
%}

当然,您使用assets:install将图片复制到web/bundles/bundle/images或任何地方。就浏览器而言,您的css和图像现在相对于彼此定位。在生产中,您将使用assetic:dump移动实际生成的css文件。