【问题标题】:Symfony2 Assetic dump when using multiple kernels使用多个内核时的 Symfony2 资产转储
【发布时间】:2016-04-15 10:00:46
【问题描述】:

使用 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/../ 中。

为什么会这样?解决办法是什么?

我的 base.html.twig:

{% 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: ~

【问题讨论】:

    标签: php symfony kernel assets assetic


    【解决方案1】:

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

    app/candy/config/config.yml

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

    app/vegetable/config/config.yml

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

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

    【讨论】:

    • Aaa,它的工作原理!我在一个项目中使用多个内核来管理多个应用程序,这些应用程序将使用相同的数据库结构和大部分相同的功能,但会有不同的模板和数据。例如,一个主机 www.car.com 和 www.phone 下的两个不同域.com 除了模板和其他一些参数不同之外,实际上是相同的东西
    • 很高兴它有效。内核足够公平。我还没有遇到那个特定的用例,所以不必找到处理它的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 2016-05-27
    • 2016-07-05
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多