2015-10-14 20 views
0

我知道我可以用下面的例子输出一个自定义文件,但是如果我想要它到js/compile/<randomfilename>.js?我无法找到任何文件解释这一点。我知道如果我们不输出输出参数,它只会在js/下创建一个随机命名的JS文件。指定不同的输出目录,使用随机文件名-UglifyJS和Symfony2

{% 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 %} 
+0

我不能直接回答,而是作为一种解决方法,你可以最终保持'输出='JS /使用编译/ app.js''和胸围缓存['assets_version'(HTTP:// symfony的。 COM/DOC /电流/参考/配置/ framework.html#REF-框架资产的版本)。 –

+0

我想通了 - 检查下面的答案。 – xil3

回答

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 %} 
相关问题