在Template中包含Assetic的组合输出

时间:2013-02-01 20:48:23

标签: php symfony twig assetic

我正在使用Symfony2编写应用程序,我有一种情况,我希望将所有CSS和Javascript资源组合在一起,并将它们包含在我的Twig模板中,以便最终只返回一个文件通过HTTP请求。

    {% block stylesheets %}
        {% stylesheets output='web/css/combined.css' combine=true 
            '@stylesheet1.css'
            '@stylesheet2.css'
            '@stylesheet3.css'
            '@stylesheet4.css'
        %}
        {% endstylesheets %}

        // PSEUDO

        include 'combined.css'

        // END PSEUDO
    {% endblock %}

因此,我不想使用Assetic来组合文件然后引用它们,而是希望直接访问输出。所有CSS都在一个<style>标记中,所有JS都在一个<script>标记中。

有没有办法在不扩展现有库的情况下实现这一目标?

1 个答案:

答案 0 :(得分:0)

为什么要直接访问组合资产?

事实上,这就是资产的作用:当在 dev 环境中时,每个样式表都有一个<style>标记,而在 prod 中,它们都被组合在一起在单个.css文件中,因此使用单个<style>。当然,javascript文件也是如此。

要使后者工作(在 prod 环境中),您需要手动转储它们:

php app/console assetic:dump --env=prod

看看dev / prod中的源HTML weh。我从未使用过combine选项,而且no official Symfony 2 documentation about it