【问题标题】:Symfony2 : add a new target for assetic finderSymfony2:为资产查找器添加一个新目标
【发布时间】:2013-06-04 19:05:21
【问题描述】:

在我的 symfony 项目中,我有一个名为 Modules 的包,其中包含许多模块,每个模块都保存在单独的目录中到 src/ModuleBundle/Modules 目录中,并且它们有单独的树枝文件作为模板。
一个名为 RandomImage 的示例模块的文件结构

src
   ModuleBundle
       Modules
           RandomImage
               Resources
                   views
                   public

我在为每个模块加载树枝文件时没有任何问题,但我的问题是关于资产的:dump 函数找不到我的模块资产。
Symfony 移动到所有 twig 文件并获取所有列在 {% stylesheets %}{% javascripts %} 块中或在 { 中使用的资产文件{ 资产() }} 函数。
在我的研究中,我了解到 Symfony 在两个目标中搜索和映射资产

  1. 基本模板树枝文件中列出的资产(例如 app/Resources/views/base.html.twig)
  2. 每个 bundle twig 文件中列出的资产(例如 src/myBundle/Resources/views/index.html.twig)


如何为 Symfony 添加新目标以从其树枝文件中获取资产文件?

【问题讨论】:

  • 我认为你应该创建一个 Module 命名空间,其中包含不同的 bundle (src > Modules > RandomImageBundle),bundle 是 module 的同义词,所以你的架构看起来真的很多余。

标签: symfony twig assetic


【解决方案1】:

Assetic 有一个用于搜索哪​​个包的配置 - assetic.bundles 在 config.yml 中找到:

assetic:
    bundles:

        # Defaults (all currently registered bundles):
        - FrameworkBundle
        - SecurityBundle
        - TwigBundle
        - ...

确保:

  • assetic.bundles 未设置或设置为 ~
  • 否则请确保其中列出了您的捆绑包
  • 您的包已在 app/AppKernel.php 中注册

为了改变 Symfony/AsseticBundle 扩展的默认资源(即通过包继承)

vendor\symfony\assetic-bundle\Symfony\Bundle\AsseticBundle\DependencyInjection\Compiler\TemplateResourcesPass.php

默认的 Resources/views 文件夹结构可以在第 50-70 行找到(从 Symfony 2.3 开始)

$container->getParameter('kernel.root_dir').'/Resources/'.$bundleName.'/views',
// ...
$bundleDirName.'/Resources/views',
// ...
new DirectoryResourceDefinition('', $engine, array($container->getParameter('kernel.root_dir').'/Resources/views'))

ResourceDefinitions 正在 CompilerPass 中加载 - 阅读更多关于它的信息 here

【讨论】:

  • 谢谢的回答,但这不是我的目的,因为 ModuleBundle 可能包含一些保存在子目录中的模块到 ModuleBundle 根目录 (src > Acme > ModuleBundle > Modules) 并且因为树枝文件不在 Symfony 默认文件结构 (src > Acme > ModuleBundle > Resources > views) 中,它无法找到他们的 twig 文件,我想找到 Symfony 生成目标目录列表以搜索他们的 twig 文件的位置
  • 用更多信息更新了我的答案。这就是你要找的对吗?
猜你喜欢
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多