2013-07-11 51 views
3

当我尝试和转储我assetic管理内容的Symphony2应用程序,我得到以下错误:assetic:转储的“少”过滤器失败

$ php app/console assetic:dump -e prod 
Dumping all prod assets. 
Debug mode is off. 

    [InvalidArgumentException] 
    There is no "less" filter. 

然而,据我可以告诉我不不要使用任何需要较少过滤器的资产,当然,我所有的树枝模板的grep都不会起什么作用。

我通过作曲家(Twitter的引导程序)安装的依赖项之一有一些.less模板,但我没有在我的树枝模板中引用它们,我只是将它指向了css版本。资产仍会尝试并转储它们?我怎么能告诉它不?

仅供参考这是我包括CSS在我的模板

{% stylesheets filter="cssrewrite" 
    '../vendor/jquery-ui-css/jquery-ui-css/*css' 
    '../vendor/twitter/bootstrap/docs/assets/css/bootstrap*.css' 
%} 
<link rel="stylesheet" type="text/css" href="{{ asset_url }}"> 
{% endstylesheets %} 

回答

8

HM许多可能的原因...

1)一些第三方软件包增加了一个assetic收集dependeing就少了过滤器在一个编译过程

2)有一个应用到规则

assetic: 
    filters: 
     less: 
      apply_to: *.less 

...在你的assetic配置即app/config/config.yml

3)有在配置中使用较少的过滤器

assetic: 
    assets: 
     css_character: 
      inputs: 
       - "%kernel.root_dir%/../src/Acme/YourBundle/Resources/public/less/*.less" 
      outputs: 
       - css/my.css 
      filters: 
       - less 

4)第三方束中的一个提供一个资产集合使用资产的{% stylesheets %}功能与小筛选器的小枝模板:

{% stylesheets "@AcmeTwitterBundle/Resources/bootstrap/less/*.less" filter="less" %} 
    {# ... {{ asset_url }} ...#} 
{% endstylesheets %} 

现在该如何找出?

首先检查您的配置文件app/config/config.yml和其他包含的资产条目使用较少的过滤器。

找出使用较少过滤器的最简单方法是安装ElaoWebProfilerExtraBundle,清除缓存并查看Profiler左侧菜单中的“资产”选项卡。您将获得所有资产集合及其使用的过滤器的概述。

另一种选择 - 不涉及新的组合虽然WebProfilerExtraBundle是真棒 - 是禁用第三方束逐个(并清除每次缓存)在app/AppKernel.php尝试,如果assetic:dump仍然抛出,直到找到坏异常-男孩。

或脏污:启用过滤器虽然不太可能是没有安装,看看下一个异常被抛出:

assetic: 
    filters: 
     less: ~ 

......这一切的一切我敢打赌你列入的过冷MOPA自举包几乎没有人知道它幕后的实际情况,但它很有名,许多人因为它的KnpBundle得分而安装它。

含义...由于MopaBootstrapBundle提供的模板中包含的文件越少,即here,您的异常就会被抛出。

+2

这是一个第三方库是问题,但它是BcBootstrapBundle而不是Mopa。更新到最新版本也拿出了我的开发箱与相同的错误。最后,我用composer&let来安装lessphp,并处理编译。 –

+0

我知道这是一个旧帖子,但是这为我节省了很多时间。谢谢!课程:不要假设您的主机/服务器具有理想的设置和功能! –