更改 symfony 资产目录
Changing symfony assetic directory
我正在处理我们正在慢慢迁移到 Symfony 的遗留应用程序。
目前是 Symfony2.6(由于 PHP 版本),但很快 Symfony3.1.
遗留应用程序已经使用主根中的目录 /css/
、/js/
来管理 css+js。
问题是 Assetic 也会在从包中编译 css+js 文件后将它的文件转储到那里。但是这些文件是生成的,不应在 git 中结束,而遗留文件应由 git.
管理
随着时间的推移,遗留文件将完全消失,一切都将由 Assetic 处理,但现在我必须忍受两者并肩工作。
我想重新配置 Assetic 以在生成 css+js 文件时使用不同的目录。它还应相应地调整网页上使用的 url。
最好通过添加额外的前缀目录。
到目前为止,我发现了 2 个可能有用的东西:
1:使用assetic-bundle的write_to
配置。但是,这似乎只影响 assetic:dump 命令,不应用于更改输出目录(根据评论)。这不会更改浏览器用于检索文件的 url。
2:在我的模板中为每个 %javascripts%
和 %stylesheets%
标签使用 output
参数。虽然这似乎确实可以控制文件的去向,但我发现我需要在每个标签上都这样做是不合逻辑的。我应该能够在系统范围内配置这个。
如何调整我的 Symfony and/or Assetic 配置以更改用于生成 css+js 文件的目录和网络目录?
您可以使用 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 assetic 不包含在 Symfony 标准版中。您可以查看 gulp 等替代方案,以便更轻松地处理您的资产管理
我正在处理我们正在慢慢迁移到 Symfony 的遗留应用程序。 目前是 Symfony2.6(由于 PHP 版本),但很快 Symfony3.1.
遗留应用程序已经使用主根中的目录 /css/
、/js/
来管理 css+js。
问题是 Assetic 也会在从包中编译 css+js 文件后将它的文件转储到那里。但是这些文件是生成的,不应在 git 中结束,而遗留文件应由 git.
管理随着时间的推移,遗留文件将完全消失,一切都将由 Assetic 处理,但现在我必须忍受两者并肩工作。
我想重新配置 Assetic 以在生成 css+js 文件时使用不同的目录。它还应相应地调整网页上使用的 url。 最好通过添加额外的前缀目录。
到目前为止,我发现了 2 个可能有用的东西:
1:使用assetic-bundle的write_to
配置。但是,这似乎只影响 assetic:dump 命令,不应用于更改输出目录(根据评论)。这不会更改浏览器用于检索文件的 url。
2:在我的模板中为每个 %javascripts%
和 %stylesheets%
标签使用 output
参数。虽然这似乎确实可以控制文件的去向,但我发现我需要在每个标签上都这样做是不合逻辑的。我应该能够在系统范围内配置这个。
如何调整我的 Symfony and/or Assetic 配置以更改用于生成 css+js 文件的目录和网络目录?
您可以使用 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 assetic 不包含在 Symfony 标准版中。您可以查看 gulp 等替代方案,以便更轻松地处理您的资产管理