Symfony2 模板不支持“bundle”参数

Posted

技术标签:

【中文标题】Symfony2 模板不支持“bundle”参数【英文标题】:Symfony2 the template does not support the "bundle" parameter 【发布时间】:2015-03-07 18:59:33 【问题描述】:

我正在和朋友一起做一个项目,使用 git。昨天一个朋友推了一些他的bundle相关的东西,但是我拉了之后,我得到了这个奇怪的错误信息

在“layout.html.twig”中编译模板时抛出了异常(“模板不支持“bundle”参数。”)。

我发现它与资产相关(我试图删除我的所有资产并且它再次工作,但没有 js 或 css 文件)并且它正在对我的所有页面执行此操作。

关键是,它对我不起作用,但对他有用。现在,我尝试cache:clear 无数次,doctrine:schema:update 也是。我只是想知道这个错误的原因可能是什么,为什么它不能这么突然地工作,如果有什么我可以做的......

我已经尝试过this,尽管这不完全是我的问题,但不起作用。这是我在 config.yml 中的资产配置,即使没有修改

assetic:
debug:          "%kernel.debug%"
use_controller: false
bundles:        []

#java: /usr/bin/java
filters:
    cs-s-rewrite: ~
    #closure:
    #    jar: "%kernel.root_dir%/Resources/java/compiler.jar"
    #yui_css:
    #    jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
assets:
    jquery: %kernel.root_dir%/../vendor/components/jquery/jquery.min.js

非常感谢你们的帮助!

编辑:我的问题似乎出在哪里

问题没有出现在 % extends % 中,或者至少现在没有。它出现在

% stylesheets '@AppBundle/Resources/public/css/*' %
    <link rel="stylesheet" href=" asset_url " />
% endstylesheets %

% javascripts
    '@AppBundle/Resources/public/js/alwaysIncluded/*'
    '@AppBundle/Resources/public/js/layout.js'
%
    <script src=" asset_url "></script>
% endjavascripts %

我试图删除 @ 但它没有改变任何东西。

第二次修改

Complete config.yml 文件(托管在 Dropbox 上,因为它是一个大文件,如果需要,可以将其上传到更好的内容或发布完整长度)

【问题讨论】:

你能发布整个 config.yml 文件吗? 您还必须将第一个“/”修改为:我认为。 刚试过,也试过用/web目录下的css,也不管用... 同样的问题,我没有任何 @Bundle 注释,我已经实现了整个 AppBundle 理念,我也有这个错误。恢复到 2.6.1 【参考方案1】:

以下语法不再适用于 Symfony 2.6.3 及其默认要求。

如果您想在不更改资产要求的情况下继续使用 Symfony 2.6.3(在生产中使用 dev-master 绝不是一个好主意...)

更改(@xxx):

% extends '@MyBundle/layout.html.twig' %

收件人:

% extends 'MyBundle::layout.html.twig' %

继续使用Symfony 2.6.3,并按照接受的答案中的建议使用assetic-bundledev-master 要求。

或者切换回Symfony 2.6.1,我想这个问题(以及资产要求)将在Symfony 2.6.4 中得到解决。

查看the issue on Github。

【讨论】:

【参考方案2】:

您需要按如下方式更新您的 composer.json:

    "symfony/symfony": "~2.6",
    "symfony/assetic-bundle": "dev-master",

该错误来自版本 2.5.0 中的资产。开发版本更正了此问题,如下所述: https://github.com/Spea/SpBowerBundle/issues/119

【讨论】:

【参考方案3】:

如果您尝试从您的模板之一中包含base.html.twig,如下所示:

% extends 'base.html.twig' %

你需要把它改成这样:

% extends '::base.html.twig' %

More information here.

【讨论】:

以上是关于Symfony2 模板不支持“bundle”参数的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 Assetic + Twig 模板 JavaScript 继承

Symfony2功能测试用例不包括自定义依赖注入配置参数

Symfony2:列出虚拟文件夹(Netbeans)中的所有视图/路由文件

Symfony2 twig 移动模板后备

在 Symfony2 中访问与 Bundle 相关的文件

Symfony2 Sonata Media Bundle 自定义图像裁剪