2017-07-09 11 views
0

私はsymfonyにコードベースをリファクタリングするオプションを模索しています。問題のアプリケーションは、多くのSenchaフロントエンドコード、カスタムPHPフレームワークなどで構築されています。Symfony asseticカスタムパスの問題

私はバンドルAeroBundleを作成し、レガシーアプリケーション全体をこのバンドルの "_Legacy"というフォルダに落としました。

私は、レイアウトテンプレートを実装しようとのようなものを使用して、多くのCSS/JSファイルの最初を呼び出したいのです:

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

しかし、私は何を取得していないのです?

Symfony(すなわち:Resources)に沿って私のアセットを移動することは、巨大なチャレンジの開発とリファクタリングを継続します。理想的には、既存のアプリケーションを1つのフォルダに保存しておくことができます。変更が行われると、文字通りこのレガシーフォルダにドロップできます。これは、クライアントアセットを上記のように解決することから始まります。

私はこれをどのように達成することができますか?私は明示的にリソースの内部バンドルパスを指定する必要があります - 私は自分のJS/CSSをバンドルResourcesディレクトリに移動したくない - 絶対に必要でない限り、私の戦略を再考する必要があるかもしれません。

EDIT |私はちょうどこのスニペットがブロックであることに気付きました、そして、これは基本テンプレートで行われているので、何がレンダリングされないのでしょうか?カスタムディレクトリから単一のスタイルシートを含めるにはどうすればよいですか? asseticで

答えて

0

、あなたはその

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] 

ようなものを使用することができ、その後、

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

小枝

上でも正直に言うと、最近私が一気のようなプリプロセッサにそのようなことをやってきました。 そのようにして、私のサーバー側のコードは、実行時に多くのことをしないクライアントサイドのものからきれいです。 アシストのサポートがゆっくりとなくなり、symfonyがアンコールとウェブパックを使用してプリプロセッサに向かって移動していることは言うまでもありません。

関連する問題