1

私はファイルを持っていますindex.html.twig

このファイルには、別のファイルを含めます。{% include 'MyBundle:Test:_test.js.twig' %}

_test.js.twigファイルには 1 行しかありません。{{ test_var }}

コントローラーでは、次を渡しますtest_varreturn array('test_var' => '"test"');

問題は、異なる環境 (dev と prod) を使用すると、sf が変数に対して異なるエスケープ戦略を使用することです。

開発では、出力が表示されます:(\x22test\x22これはjsエスケープ戦略です)

製品内: "test"(これは html エスケープ戦略です)

なんで?開発環境と本番環境は同等に機能するはずだと考えました。

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 に答える