symfony2资产路径在symfony2.7中突然逃逸

symfony2资产路径在symfony2.7中突然逃逸,symfony,assetic,Symfony,Assetic,我正在将我的代码从symfony2.6升级到symfony2.7,在我的资产中遇到了一件奇怪的事情 示例代码略为缩短 我用它来设置head.html.twig中的css文件 {% stylesheets '@MyAwesomeBundle/Resources/subfolder*.less' %} <link rel="stylesheet" href="{{ asset_url }}"/> {% endstylesheets %} 编译的文件越少越好。问题是网页中产生的url,如

我正在将我的代码从symfony2.6升级到symfony2.7,在我的资产中遇到了一件奇怪的事情

示例代码略为缩短

我用它来设置head.html.twig中的css文件

{% stylesheets '@MyAwesomeBundle/Resources/subfolder*.less' %}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
编译的文件越少越好。问题是网页中产生的url,如下所示:

<link rel="stylesheet" href="\2F css\2F 36f682f\5F bootstrap\5F 1\2E css"/>

当我向细枝文件添加一个| raw过滤器时,路径很好

{# twig #}
<link rel="stylesheet" href="{{ asset_url|raw }}"/>

{# resulting html #}
<link rel="stylesheet" href="/css/36f682f_bootstrap_1.css"/>
{#细枝}
{#结果html}
你知道怎么补救吗? 我讨厌浏览我所有的细枝文件并添加原始过滤器


我已经查看了我使用composer导入的所有依赖项,它们似乎是最新的稳定版本(没有使用开发版本)。

我仍然不确定为什么会遇到这个问题,但我已经通过对基本模板的一个小改动修复了我的问题

我的基本模板中有一个名为“head”的块。其中包括两个用于默认css和js文件的外部模板(应始终包括)。 当我将这些模板的内容移动到基础模板中时,我的问题就消失了。 问题只出现在那些css+js文件中。在其他地方,这个问题并不存在


它还可能与调用parent()模板有关,该模板用于在特定页面上添加传统的css或javascript。

symfony2.7根据文件扩展名(或名称)对文件进行不同的解析

变量“asset_url”仅在.html.twig文件中受保护(且无转义)。
在其他情况下(例如:head.js.twig、head_js.twig等),它将转义,因此需要“| raw”过滤器。

谢谢,这是我的解决方案。我有一些名为“thing.css.twig”的文件,但它坏了。重命名为“thing.css.html.twig”修复了这个问题!
{# twig #}
<link rel="stylesheet" href="{{ asset_url|raw }}"/>

{# resulting html #}
<link rel="stylesheet" href="/css/36f682f_bootstrap_1.css"/>