【问题标题】:Allow bundle to extend asset configuration of Assetic允许 bundle 扩展 Assetic 的资产配置
【发布时间】:2015-04-03 21:28:30
【问题描述】:

我目前正在努力满足这个要求:我们有一个模块化应用程序,客户可以在其中按需启用模块。每个模块都是一个包。现在我们有了某种仪表板,我想根据安装的模块/捆绑包注入资产(JS/CSS)。此外,我想将这些文件合并到一个“dashboard.{js|css}”文件中,这样我们每个捆绑的 js 和 css 文件就没有 1 个请求。

对于其他文件,我们使用了 Twig 的 Assetic 集成和命名资产的组合,但配置密钥 assetic.assets 似乎不能在包的扩展类中公开访问......这很遗憾' d 是我们方法的一种非常简单的方法。

我还研究了一个自定义配置/服务组合,以将资产加载器注入资产 AssetManager 服务...但这感觉完全是矫枉过正,我认为我只是错过了一些东西。

有什么想法吗?

更新 1

我的目标是以下配置:

assetic: # Assetic Configuration
    assets:
        dashboard_js: 
            inputs:
                - '@ModuleOneBundle/Resources/public/js/dashboard.js'
                - '@ModuleTwoBundle/Resources/public/js/dashboard_dep.js'
                - '@ModuleTwoBundle/Resources/public/js/dashboard.js'
                - '@ModuleThreeBundle/Resources/public/js/dashboard.js'

我们的客户可以决定他们使用哪些模块,因此我无法对它们进行硬编码。所以我试图使用Configuration 类,但他们无法访问我需要的东西。我想阻止运行自定义构建脚本来创建 config.yml 文件。

【问题讨论】:

  • 嘿,我也对这个感兴趣。你找到解决办法了吗?
  • 不,很遗憾没有。我仍在为此使用丑陋的解决方法。 :(

标签: symfony configuration twig assets assetic


【解决方案1】:

您可以为此使用资产配置来编译一个文件,其中包含每个捆绑包的所有需求。也许你可以在你的配置中有一堆这些条目,全部定制,然后只调用你需要的组合的一个文件。例如

assetic: # Assetic Configuration
    assets:
        js1combo: 
            inputs:
                - '@AppBundle/Resources/public/js/js1.js'
                - '@AppBundle/Resources/public/js/js2.js'
        js2combo: 
            inputs:
                - '@AppBundle/Resources/public/js/js2.js'
                - '@AppBundle/Resources/public/js/js3.js'
        js3combo: 
            inputs:
                - '@AppBundle/Resources/public/js/js1.js'
                - '@AppBundle/Resources/public/js/js2.js'

在您的文件中,只需要一个 js 文件

{% javascripts
    'js/js2combo.js'
%}
    <script src="{{ asset_url }}"></script>
{% endjavascripts %}

如果它有帮助,我有一个工具可以让你的编译任务变得更容易,你可以每天运行一次。如果有人可以提供帮助,我会努力解决这个问题。这使我的资产生活更轻松。 :-)

https://github.com/wolfdogg/symphAstman

我不完全理解您的第二个问题,但听起来您可能想要为此提供服务,如果它太涉及您必须这样做的方式。

【讨论】:

  • 我的问题是我无法硬编码config.yml 中的输入文件。我将更新我的问题以显示我的目标配置。
猜你喜欢
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-26
  • 2021-04-08
相关资源
最近更新 更多