【问题标题】:Exporting assets from non-standard Symfony public resources directory从非标准 Symfony 公共资源目录中导出资产
【发布时间】:2015-01-02 01:13:25
【问题描述】:

如何为 assets:install 或 assets:dump 指定一个额外的(备用)位置来查看,例如

`php app/console assets:install --symlink`

默认情况下,这会扫描并为具有Resources/public 目录的所有包创建符号链接。

但我想使用另一种目录结构,增加 2 个额外级别,例如

/Gutensite/TemplateBundle/Templates/Admin/Resources/public
/Gutensite/TemplateBundle/Templates/Lunar/Resources/public
/Gutensite/TemplateBundle/Templates/Solar/Resources/public

使用这种结构,assetic:dump 和 assets:install 找不到文件。因此我不能像这样加载它们:

{% stylesheets '@GutensiteTemplateBundle/Templates/Admin/Resources/public/css/site.css' %}
<link rel="stylesheet" href="{{ asset_url }}">
{% endstylesheets %}

注意:我的大多数包都遵循标准格式,但这个模板包将包含每个模板的目录,因此公共资源目录更深 2 级。我还需要能够在 symfony 根目录之外的客户端特定目录中安装资产,但这可能只需要手动进行。但是,我需要能够链接到它们。

【问题讨论】:

  • 在我看来,您正在制动 Symfony2 结构。怎么样:/Gutensite/TemplateBundle/Resources/Templates/Admin/public
  • 是的,我们的目标是将模板组织在一个主文件夹中,而不是将每个模板的控制器、视图和资产文件分散在这么多位置。我有decided to just make a Templates vendor 并将每个模板制作成一个包,这样它们就与我的常规功能包分开并且更有条理。但我仍然想知道这个问题的答案,因为您应该能够控制替代安装位置。而且我有需要从非根位置安装的自定义客户端文件。
  • 你试过/Gutensite/TemplateBundle/Templates/Resources/public/Admin而不是/Gutensite/TemplateBundle/Templates/Admin/Resources/public吗?
  • @user3749178 是的,在这种情况下确实有效,因为它是标准位置。但它将模板分解为太多位置。它也不适用于 symfony 根目录之外的客户端特定目录的问题。我决定创建一个 /Templates/ 供应商,并将每个模板都制作成自己的捆绑包。这在 Symfony 的框架内运行良好。但它并没有解决这个问题,尤其是关于 symfony 根目录之外的客户端文件在他们自己的 vhost 文件夹中。

标签: symfony twig assetic


【解决方案1】:

您是否在 AppKernel.php 中注册了您的包?

或者,如果你的包中没有包类,你可以在你的树枝模板中使用这个表示法:

{% stylesheets '%kernel.root_dir%/../src/Gutensite/TemplateBundle/Templates/Admin/Resources/public/css/site.css' %}
    <link rel="stylesheet" href="{{ asset_url }}">
{% endstylesheets %}

【讨论】:

  • 是的,我们确实在 AppKernel.php 中注册了包。但是,这不起作用,如果能够指定替代文件位置,尤其是对于核心文件结构之外的客户端文件,那就太好了。
猜你喜欢
  • 2019-09-30
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
  • 2014-04-04
  • 1970-01-01
相关资源
最近更新 更多