0

assets.yml:

assetic:
    assets:
        base_js:
            inputs:
                - '%kernel.root_dir%/Resources/public/jquery-1.10.2.min.js'
                - '%kernel.root_dir%/Resources/public/bootstrap3/js/bootstrap.min.js'
            output: 'js/scripts.js'
        base_css:
            inputs:
                - '%kernel.root_dir%/Resources/public/bootstrap3/css/bootstrap.min.css'
            output: 'js/styles.css'

config.yml

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: assets.yml }

#...

assetic:
    debug:          %kernel.debug%
    use_controller: false
    bundles:        [MyAdminBundle]
    #java: /usr/bin/java
    filters:
        cssrewrite: ~

そしてテンプレートで:

{% block javascripts %}
   {% javascripts '@base_js' %}
       <script src="{{ asset_url }}"></script>
   {% endjavascripts %}
{% endblock %}

ただし、出力としてjs/80e3acc_part_1.jsを取得し、このファイルには jquery コードのみが含まれており、boostrap がありません。これを修正する方法はありますか?

4

1 に答える 1

1

{% image %}悲しいことに、アセットコレクションの出力ファイル名の構成は現在、デフォルトでは使用されて{% stylesheets %}いませ{% javascripts %}ん。@

さらに、関数は- 構文asset()では機能しません。@

以下を使用して、ファイル名の問題を修正します。

{% javascripts '@base_js' output='js/scripts.js' %}
    <script src="{{ asset_url }}"></script>
{% endjavascripts %}

asset()または、出力ファイル名を関数に直接含めるだけです。

<script src="{{ asset('js/scripts.js') }}"></script>

この構文はすっきりしていますが、構成でファイル名を変更しなければならない場合や、出力ファイルの名前を変更したい場合はテンプレートの欠点が残ります。

リソースが追加された場合、ほとんどの場合、assetic はキャッシュされたコレクションのリソースを自動的に更新しないことに注意してください。app/console cache:clearしたがって、アセットをダンプする前に、必ず を使用してキャッシュをクリアしてください。

これは、ブートストラップを 2 番目のリソースとして追加したが、コマンドを使用する前にキャッシュをクリアしなかった場合、ダンプ後に出力ファイルにブートストラップが欠落していた理由を説明しますassetic:dump

于 2013-08-06T02:06:53.280 に答える