我目前正在努力满足这个需求:我们已经有了一个模块化的应用程序,在该应用程序中,模块可以由客户按需启用。每个模块都是一个包。现在,我们有了一些仪表板,我想根据安装的模块/包注入资产(JS/CSS)。此外,我还想将这些文件合并到一个单独的“仪表板.{ js \ css }”文件中,这样我们就不会对每个包(Js)和css文件有一个请求。
对于其他文件,我们使用Twig的Assetic集成和命名资产的组合,但配置键assetic.assets似乎不能在包的扩展类中公开访问.这是一个遗憾,因为这将是一个可怕的,容易的方式,我们的做法。
我还研究了自定义配置/服务对,以便将资产加载器注入资产管理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文件。
发布于 2015-02-26 00:51:46
您可以使用assetic配置来编译每个包所需的一个文件。也许您可以在您的配置中有一堆这些条目,所有定制,然后只调用一个文件,有您的组合you需要。例如:
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
我不完全理解你的第二个问题,但听起来你可能想为此做一个服务,如果它太涉及到你必须这样做。
https://stackoverflow.com/questions/28320020
复制相似问题