【发布时间】: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
Templatesvendor 并将每个模板制作成一个包,这样它们就与我的常规功能包分开并且更有条理。但我仍然想知道这个问题的答案,因为您应该能够控制替代安装位置。而且我有需要从非根位置安装的自定义客户端文件。 -
你试过
/Gutensite/TemplateBundle/Templates/Resources/public/Admin而不是/Gutensite/TemplateBundle/Templates/Admin/Resources/public吗? -
@user3749178 是的,在这种情况下确实有效,因为它是标准位置。但它将模板分解为太多位置。它也不适用于 symfony 根目录之外的客户端特定目录的问题。我决定创建一个 /Templates/ 供应商,并将每个模板都制作成自己的捆绑包。这在 Symfony 的框架内运行良好。但它并没有解决这个问题,尤其是关于 symfony 根目录之外的客户端文件在他们自己的 vhost 文件夹中。