我正在处理我们正在慢慢迁移到Symfony的遗留应用程序。 目前Symfony2.6(由于PHP版本),但很快Symfony3.1。
旧版应用程序已使用主根目录中的/css/
,/js/
来管理css + js。
问题是,在从bundle编译css + js文件后,Assetic还会将其转储到那里。但是这些文件是生成的,不应该以git结尾,而遗留文件应该由git管理。
遗留文件会及时完全消失,所有内容都将由Assetic处理,但是现在我必须和两个人并肩工作。
我想在生成css + js文件时重新配置Assetic以使用不同的目录。它还应该相应地调整网页上使用的URL。 最好通过添加额外的前缀目录。
到目前为止,我发现了两件可行的方法:
1:使用资产包的write_to
配置。但是,这似乎只影响assetic:dump命令,不应该用于更改输出目录(根据注释)。这不会更改浏览器用于检索文件的URL。
2:对我的模板中的每个output
和%javascripts%
标记使用%stylesheets%
参数。虽然这似乎可以控制文件的位置,但我觉得我需要在每个标签上执行此操作都是不合逻辑的。我应该能够在整个系统范围内进行配置。
如何调整Symfony和/或Assetic配置以更改用于生成的css + js文件的目录和web-dir?
答案 0 :(得分:2)
您可以使用write to
作为输出目录,并在框架配置下在资产中定义基本路径
assetic:
write_to: "%kernel.root_dir%/../web/foo"
framework:
assets:
base_path: "foo"
自2.7 more info here
以来,有一个新的资产组件你可以致电
{% javascripts '@AcmeBundle/Resources/public/js/bar.js' output="js/bar.js" %}
<script src="{{ asset_url }}" defer></script>
{% endjavascripts %}
ps:因为symfony 2.8资产不包含在Symfony标准版中。您可以检查gulp之类的替代方案,以便更轻松地处理资产管理