【问题标题】:Combining Assetic Resources across inherited templates跨继承的模板组合资产资源
【发布时间】:2011-10-20 23:59:15
【问题描述】:

我们正在使用 Symfony2 构建一个新站点,Assetic 在资源管理方面看起来非常有前途,特别是在自动组合和处理所有 js/css 文件方面。

我们将拥有一些在网站范围内使用的资源,以及一些特定于特定页面的资源。我们还将对模板使用三层继承方法。

有没有办法将这两个概念结合起来,即在继承的模板中自动添加额外的资源,以便它们都作为单个资源输出?

【问题讨论】:

    标签: templates resources symfony twig assetic


    【解决方案1】:

    很遗憾,你不能:(

    您不能覆盖资产标签来添加更多资产。但是,您可以执行以下操作:

    {% block stylesheets %}
        {% stylesheets 'your_assets_here' %}
             <link rel="stylesheet" href="{{ asset_url }}" />
        {% endstylesheets %}
    {% endblock %}
    

    然后,当你扩展模板时:

    {% block stylesheets %}
        {% stylesheets 'your_old_assets_here' 'your_new_assets_here' %}
             <link rel="stylesheet" href="{{ asset_url }}" />
        {% endstylesheets %}
    {% endblock %}
    

    在被覆盖的块中,您可以使用parent() 来包含父块,但此时您将有 2 个链接:您不能将旧资产标签与新标签结合起来。

    但是,您可以创建一个 twig 宏,将 {% stylesheets %} 资产标签与您的旧资产一起输出,并作为输入包含新资产位置。

    更多信息here

    【讨论】:

    • Drat,我也很怀疑。感谢您提供指向树枝宏的指针。
    • Assetic 不是先运行吗?
    • 我认为这是一种正确的行为:我认为将必须位于单个页面/路线上的资产组合起来并不聪明。这正是我想要的行为。因此,感谢您提供有关如何仅为单个路线插入文件的解决方案! :)
    【解决方案2】:

    您实际上可以执行以下操作:

    在 layout.html.twig(或任何你的布局)中

    {% block stylesheets %}
        {% stylesheets 'your_assets_here' %}
             <link rel="stylesheet" href="{{ asset_url }}" />
        {% endstylesheets %}
    {% endblock %}
    

    在任何扩展该布局的模板中:

    {% block stylesheets %}
        {{ parent() }}
        {% stylesheets 'additional_assets_here' %}
             <link rel="stylesheet" href="{{ asset_url }}" />
        {% endstylesheets %}
    {% endblock %}
    

    那么您就不需要按照 Nemanja Niljkovic 的建议重新输入所有旧资产

    【讨论】:

    • 是的,但是(引用 Nemana Niljkovic 的回答):“但是你会有 2 个链接,因为你不能将旧的资产标签与新的标签结合起来”
    • 将新文件组合到父样式表/脚本集没有多大意义,因为这会破坏缓存的目的,因为您可能有许多这样的页面都有自己的一组附加文件...将它们组合起来意味着每个页面都有一组新的组合文件!告别浏览器缓存。因此,对于具有层级自己的附加文件的页面,实际上最好有一组单独的组合文件,这样至少更通用的样式表/脚本集将始终被缓存
    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2011-08-23
    相关资源
    最近更新 更多