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 在此处的回答中描述的资产变量。该功能有点损坏,但在您使用语言环境作为变量时适用于您的情况。

答案是默认情况下只有两个变量有效(locale 和 env,它们的值在 Symfony 中预先配置: https ://github.com/symfony/AsseticBundle/blob/master/DefaultValueSupplier.php#L31 。

config_dev.yml

assetic:
    use_controller: false

配置.yml

您还需要将您的assetic.variables.locale [...] 设置为您的变量的所有可能组合:

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

...然后在调用assetic:dump.

模板

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

变通建设:

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

<script src="{{ asset(myScript) }}"></script>

于 2018-07-25T12:02:45.690 回答