4

スクリプトを含めるために Assetic を使用しており、現在のロケールを渡す必要があります。どうすればいいですか?

{% javascripts
    '@MyBundle/Resources/public/components/moment/moment.js'
    '@MyBundle/Resources/public/components/moment/lang/' ~ app.request.locale ~ '.js'
 %}

文字列連結が機能せず、値「~」の予期しないトークン「演算子」がスローされます

4

2 に答える 2

3

Ryan Weaver の回答 here で説明されているように、assetic の変数を使用できます。この機能はちょっと壊れていますが、ロケールを変数として使用するとうまくいきます。

答えは、デフォルトで機能する変数は 2 つだけです (locale と env、およびそれらの値は Symfony で事前に構成されています: https://github.com/symfony/AsseticBundle/blob/master/DefaultValueSupplier.php#L31 )

config_dev.yml

assetic:
    use_controller: false

config.yml

また、assetic.variables.locale [...] を変数の可能な組み合わせの合計に設定する必要があります。

assetic:
    variables:
        locale:    [en,fr,de]

... を呼び出した後、javaScripts タグ内でそれらを使用しますassetic:dump

テンプレート

{% javascripts
     'bundles/my/components/{locale}.js'
%}
于 2013-07-16T14:44:41.330 に答える