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-bundle
的dev-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 继承