symfony2 assetic 路径突然在 symfony2.7 中逃逸
symfony2 assetic path suddenly escaped in symfony2.7
我正在将我的代码从 symfony2.6 升级到 symfony2.7 并且 运行 将我的资产变成一个奇怪的东西。
示例代码略有缩短。
我正在使用它在 head.html.twig 中设置我的 css 文件。
{% stylesheets '@MyAwesomeBundle/Resources/subfolder*.less' %}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
这在我的配置文件中:
# Assetic Configuration
assetic:
debug: %kernel.debug%
bundles:
- MyAwesomeBundle
node: %path.nodejs%
node_paths: [ %path.node_modules% ]
filters:
less:
apply_to: "\.less$"
less 文件编译正常。问题是网页中生成的 url,看起来像这样:
<link rel="stylesheet" href="F cssF 36f682fF bootstrapF 1E css"/>
当我向 twig 文件添加 |raw 过滤器时,路径就很好。
{# twig #}
<link rel="stylesheet" href="{{ asset_url|raw }}"/>
{# resulting html #}
<link rel="stylesheet" href="/css/36f682f_bootstrap_1.css"/>
知道如何解决这个问题吗?
我讨厌浏览我所有的树枝文件并添加原始过滤器。
我查看了我使用 composer 引入的所有依赖项,它们似乎是最新的稳定版本(未使用开发版本)。
我仍然不确定为什么我 运行 会遇到这个问题,但我已经通过对基本模板进行一些小改动解决了我的问题。
我的基本模板中有一个名为 "head" 的块。其中包括 2 个用于默认 css 和 js 文件(应始终包含)的外部模板。
当我将这些模板的内容移动到基本模板中时,我的问题就消失了。
该问题仅存在于那些 css+js 文件中。其他地方没有这个问题。
它也可能与调用 parent() 模板有关,可以在特定页面上添加额外的 css 或 javascript。
symfony2.7 根据文件扩展名(或名称)以不同方式解析文件。
变量 "asset_url" 仅在 .html.twig 文件中受到保护(且未转义)。
在其他情况下 (例如:head.js.twig、head_js.twig 等),它将转义,因此需要 "| raw"。 =17=]过滤器。
我正在将我的代码从 symfony2.6 升级到 symfony2.7 并且 运行 将我的资产变成一个奇怪的东西。
示例代码略有缩短。
我正在使用它在 head.html.twig 中设置我的 css 文件。
{% stylesheets '@MyAwesomeBundle/Resources/subfolder*.less' %}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
这在我的配置文件中:
# Assetic Configuration
assetic:
debug: %kernel.debug%
bundles:
- MyAwesomeBundle
node: %path.nodejs%
node_paths: [ %path.node_modules% ]
filters:
less:
apply_to: "\.less$"
less 文件编译正常。问题是网页中生成的 url,看起来像这样:
<link rel="stylesheet" href="F cssF 36f682fF bootstrapF 1E css"/>
当我向 twig 文件添加 |raw 过滤器时,路径就很好。
{# twig #}
<link rel="stylesheet" href="{{ asset_url|raw }}"/>
{# resulting html #}
<link rel="stylesheet" href="/css/36f682f_bootstrap_1.css"/>
知道如何解决这个问题吗? 我讨厌浏览我所有的树枝文件并添加原始过滤器。
我查看了我使用 composer 引入的所有依赖项,它们似乎是最新的稳定版本(未使用开发版本)。
我仍然不确定为什么我 运行 会遇到这个问题,但我已经通过对基本模板进行一些小改动解决了我的问题。
我的基本模板中有一个名为 "head" 的块。其中包括 2 个用于默认 css 和 js 文件(应始终包含)的外部模板。 当我将这些模板的内容移动到基本模板中时,我的问题就消失了。 该问题仅存在于那些 css+js 文件中。其他地方没有这个问题。
它也可能与调用 parent() 模板有关,可以在特定页面上添加额外的 css 或 javascript。
symfony2.7 根据文件扩展名(或名称)以不同方式解析文件。
变量 "asset_url" 仅在 .html.twig 文件中受到保护(且未转义)。 在其他情况下 (例如:head.js.twig、head_js.twig 等),它将转义,因此需要 "| raw"。 =17=]过滤器。