使用随机文件名指定不同的输出目录 - 带有Symfony2的UglifyJS

时间:2015-10-14 14:22:24

标签: javascript php symfony twig uglifyjs

我知道我可以通过下面的例子输出一个自定义文件,但如果我想要它转到js/compile/<randomfilename>.js怎么办?我无法找到任何解释它的文档。我知道如果我们退出输出参数,它只会在js/下创建一个随机命名的JS文件。

{% javascripts 
    'vendor/bower_components/angular/angular.min.js'
    'https://cdn.ywxi.net/js/1.js'
    'vendor/bower_components/jquery/dist/jquery.min.js'
    'js/app/*'
    'js/app/services/*'
    'js/app/directives/*'
    'js/app/controllers/*'
    filter='?uglifyjs2'
    output='js/app.js'
%}
    <script src="{{ asset_url }}"></script>
{% endjavascripts %}

1 个答案:

答案 0 :(得分:0)

我最终搞清楚了。秘诀是通过Assetic进行设置。

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    node: "%node_path%"
    write_to: %kernel.root_dir%/../web/static/

添加write_to行就可以了。所以文件现在写入static/。然而,还有另一个变化,因为这实际上并没有改变asset_url显示的内容,只有资产编写生成文件的地方(有点傻,我知道)。

我不得不添加这一部分的配置:

framework:
    templating:
        packages:
            assetic:
                base_urls: static/

这会创建一个名为assetic的新包,它定义base_urls。现在我们必须告诉它使用该包,并删除输出。

{% javascripts package='assetic'
    'vendor/bower_components/angular/angular.min.js'
    'https://cdn.ywxi.net/js/1.js'
    'vendor/bower_components/jquery/dist/jquery.min.js'
    'js/app/*'
    'js/app/services/*'
    'js/app/directives/*'
    'js/app/controllers/*'
    filter='?uglifyjs2'
%}
    <script src="{{ asset_url }}"></script>
{% endjavascripts %}