Symfony资产自定义路径问题

时间:2017-07-09 21:16:44

标签: symfony

我正在探索将代码库重构为Symfony的选项。有问题的应用程序基于很多Sencha前端代码,自定义PHP框架等。

我创建了一个捆绑AeroBundle,并将我的整个遗留应用程序放入此捆绑包中名为“_Legacy”的文件夹中。

我正在尝试实现布局模板,并希望使用以下内容调用许多CSS / JS文件中的第一个:

    {% stylesheets
        "@AerospaceBundle/_Legacy/public/common/extjs/resources/css/ext-all.css" 
    %}
    {% endstylesheets %}

但我什么都没得到?

根据Symfony(即:资源)移动我的aassets将继续开发和重构一个巨大的挑战。理想情况下,我可以保留我的遗留应用程序包含在一个文件夹中,以便进行更改我可以将它们放入此遗留文件夹中 - 这首先解决客户端资产与上面的内容。

关于如何实现这一目标的任何想法?我需要明确指出资源的内部包路径 - 我不想将我的JS / CSS移动到bundle资源目录中 - 除非绝对需要 - 在这种情况下我可能不得不重新考虑我的策略。

编辑|我刚刚意识到这个片段是一个块,这是在基本模板中完成的,这可能是为什么它不呈现任何东西?如何在自定义目录中包含单个样式表?

1 个答案:

答案 0 :(得分:0)

With assetic, you can use something like that

assetic:
    debug:          '%kernel.debug%'
    use_controller: '%kernel.debug%'
    filters:
        cssrewrite: ~
    assets:
            merged_js:
                inputs:
                    - "%kernel.root_dir%/../web/js/jquery.min.js"
                    - "%kernel.root_dir%/../vendor/twitter/bootstrap/dist/js/bootstrap.js"
                    - "%kernel.root_dir%/../web/js/bootstrap-toggle.min.js"
                    - "%kernel.root_dir%/../web/js/bootstrap-slider.min.js"
                    - "%kernel.root_dir%/../web/js/angular.min.js"
                    - "%kernel.root_dir%/../web/js/app.js"
                    - "%kernel.root_dir%/../vendor/tinymce/tinymce/tinymce.js"
                    - "%kernel.root_dir%/../vendor/tinymce/tinymce/themes/modern/theme.js"
            merged_css:
                inputs:
                    - "%kernel.root_dir%/../web/css/custom.css"
                    - "%kernel.root_dir%/../web/css/bootstrap-toggle.min.css"
                    - "%kernel.root_dir%/../web/css/bootstrap-slider.min.css"
                    - "%kernel.root_dir%/../vendor/tinymce/tinymce/skins/lightgray/content.min.css"
                filters: [cssrewrite]

and then on twig

{% stylesheets  '@merged_css'  %}
        <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}"/>
{% endstylesheets %}
{% javascripts '@merged_js' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

But to be honest, lately I have been doing such things on preprocessors like gulp. That way my server side code is clean from client side stuff that do not do much at runtime. Not to mention that assetic support is slowly dropped and symfony is moving towards a preprocessor with encore and webpack