1

我有文件index.html.twig

在这个文件中,我包含了另一个文件:{% include 'MyBundle:Test:_test.js.twig' %}

_test.js.twig文件只有一行:{{ test_var }}

在控制器中,我通过test_varreturn array('test_var' => '"test"');

问题是,如果我使用不同的环境(开发和产品),sf 将对变量使用不同的转义策略。

在开发中,我看到了输出:(\x22test\x22这是一个 js 转义策略)

在产品中:("test"这是一个 html 转义策略)

为什么?我认为 dev 和 prod 环境应该同样工作。

4

1 回答 1

1

我不能说为什么。我需要查看您的 config.yml 和 config_dev.yml。

但是你可以MyBundle:Test:_test.js.twig这样写:

{{ test_var|e('js') }}

或者:

{% autoescape 'js' %}
    {{ test_var }}
{% endautoescape %}
于 2012-11-06T19:32:47.657 回答