Symfony2使用多个内核时的资产转储


Symfony2 Assetic dump when using multiple kernels

使用Symfony 2.7。我在多个内核中制作了应用程序。我的文件夹结构如下:

Project
 |   
 +-- app/
 |  |  
 |  +-- candy/    // all config, parameters, kernel for candy application
 |  +-- vegetable/  // all config, parameters, kernel for vegetable application
 |    
 +-- src/ 
 +-- bin/
 +-- vendor/
 |  
 +-- web/
    |
    +-- candy/  // all assets, images, js etc. for candy application
    +-- vegetable/ // all assets, images, js etc. for vegetable application

现在,当我想安装资产时,我只需执行以下操作:

php app/candy/console assets:install web/candy/

然而,当我这样做时,这是有效的:

php app/candy/console assetic:dump web/candy/

它搜索web/目录中的文件,而不是web/candy/bundles/../中的文件。

为什么会这样,解决方案是什么?

我的基础.html假发:

{% block stylesheets %}
    {% stylesheets
    'bundles/mpshop/css/jquery-ui.css'
    'bundles/mpshop/css/bootstrap.min.css'
    'bundles/mpshop/css/style.css'
    'bundles/mpshop/css/docs.css'
    'bundles/mpshop/css/lightbox.css'
    'bundles/mpshop/css/bootstrap-select.css'
    'bundles/mpshop/css/style_custom.css'
    'bundles/mpshop/css/responsive.css'
    'bundles/mpshop/slick/slick.css'
    'bundles/mpshop/slick/slick-theme.css'
    'bundles/mpshop/css/fonts_googleapis.css'
    filter='cssrewrite'
    %}
    <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
{% endblock %}
{% block javascripts %}
    {% javascripts
    'bundles/mpshop/js/jquery-1.11.3.min.js'
    'bundles/mpshop/js/jquery-ui.js'
    'bundles/mpshop/js/migrate.js'
    'bundles/mpshop/js/bootstrap.min.js'
    'bundles/mpshop/js/bootstrap-select.js'
    'bundles/mpshop/js/search.js'
    'bundles/mpshop/js/ckeditor.js'
    'bundles/mpshop/js/jquery.lightbox-0.5.js'
    'bundles/mpshop/js/lightbox.js'
    'bundles/mpshop/slick/slick.js'
    'bundles/mpshop/js/custom.js'
    'bundles/mpshop/js/scroll-to-top.js'
    'bundles/mpshop/js/jquery.smooth_scroll.js'
    %}
    <script src="{{ asset_url }}"></script>
    {% endjavascripts %}

config.yml:

assetic:
    debug:          "%kernel.debug%"
    use_controller: "%kernel.debug%"
    bundles:        [ EDBlogBundle, ApplicationEDBlogBundle ]
    #java: /usr/bin/java
    filters:
        cssrewrite: ~

您应该在配置中为每个内核设置"write_to"目录。

app/cand/config/config.yml

assetic:
    //...
    write_to:             '%kernel.root_dir%/../../web/candy'

app/cruet/config/config.yml

assetic:
    //...
    write_to:             '%kernel.root_dir%/../../web/vegetable'

顺便说一下,为什么要使用多个内核
我听说过它的可能性,但从未见过它的好处,所以我对这个想法感兴趣。