Symfony2 - 带有Assetic的CSS中的图像

时间:2014-04-22 01:55:59

标签: css symfony twig assets assetic

编辑:我似乎找到了第三方软件包,通过一些配置,似乎可以实现我的目标:AlexAsseticExtraBundle。目前唯一的缺点是它没有做任何类型的缓存破坏。但是,添加该功能就像分叉/修补以及将所需的依赖项添加到编写器一样简单。

我仍然欢迎任何官方/建议的方法来实现这一点,但是现在这似乎运作得很好,我很乐意在生产中使用它。

我最近潜入Symfony2并让自己的项目变得更熟悉框架。这是我的设置:

<!-- base.html.twig -->
<head>
    <title>Page</title>
    {% block stylesheets %}
    {% stylesheets  'bundles/website/less/*.less' output='assets/css/output.css' filter='lessphp,?cssrewrite' %}
    <link rel="stylesheet" href="{{ asset_url }}">
    {% endstylesheets %}
    {% endblock %}
</head>

LESS文件内部:

/* main.less */
body {
     background: url('../images/bg.jpg');
}

我已经运行php app/console assets:install web --symlinksphp app/console assetic:dump,在使用cssrewrite过滤器的情况下,生成CSS文件并将图像的路径设置为'../../bundles/website/images/bg.jpg'。这很好用。

然而,我的OCD正在努力,我试图想办法让CSS文件中引用的所有图像也作为我的CSS / JS存在于web/中的同一资产目录中以及使用Twig模板中的资产的任何图像。我的理由很简单,将来将这些资产转移到CDN上更加容易,而不必从多个来源中提取它们,以及在部署之前将非标准文件保留在web/之外。< / p>

在我离开并提出一些非常糟糕的方法来实现这一目标之前,是否有任何简单的方法来获取带有资产的CSS文件内部引用的图像?还有资产:dump?

1 个答案:

答案 0 :(得分:0)

我似乎找到了第三方软件包,通过一些配置,似乎可以实现我的目标:AlexAsseticExtraBundle。目前唯一的缺点是它没有做任何类型的缓存破坏。但是,添加该功能就像分叉/修补以及将所需的依赖项添加到编写器一样简单。

我仍然欢迎任何官方/建议的方法来实现这一点,但是现在这似乎运作得很好,我很乐意在生产中使用它。