0

这是我的代码:

{% block js %}
    {% javascripts filter='?yui_js' output='js/m/myfiles.js'
            '@MyBundle/Resources/public/js/m/one.js'
            '@MyBundle/Resources/public/js/m/two.js'
            '@MyBundle/Resources/public/js/m/three.js'
    %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

我希望能够根据变量更改我的输出值。

像这样的东西:

{% set myOutput = 'js/m/myfiles_v2.js'%}
{% block js %}
    {% javascripts filter='?yui_js' output=myOutput
            '@MyBundle/Resources/public/js/m/one.js'
            '@MyBundle/Resources/public/js/m/two.js'
            '@MyBundle/Resources/public/js/m/three.js'
    %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

但是当我这样做时,我得到“意外的令牌”名称“价值“myOutput”(“字符串”预期)。有没有办法解决这个问题?

4

1 回答 1

0

我认为您需要创建自己的资产过滤器,它将扩展 yui_js 过滤器并覆盖函数以创建名称。

Assetic 过滤器是一个服务实现了FilterInterface。

这是您作为服务的过滤器的示例定义:

<service id="my.if.filter" class="MyBundle\FilterClass">
    <tag name="assetic.filter" alias="my_alias" />
    <argument></argument>
    <argument>....</argument>
</service>

这是一个教程:

http://richardmiller.co.uk/2011/05/24/symfony2-make-your-own-assetic-filter/

于 2013-02-19T20:06:13.360 回答