2014-03-28 44 views
4

資產管理是理解恕我直言的最難的部分,即使在與Symfony打了一年或更長時間之後。不管怎麼說,我是用named assets實驗:具有命名資產的Symfony資產,在prod環境中轉儲兩次?

assets: 
    mybundle_front_js: 
     inputs: 
      - @MeMyBundle/Resources/public/jquery/dist/jquery.js 
      - @MeMyBundle/Resources/public/bootstrap/js/affix.js 
      - @MeMyBundle/Resources/public/bootstrap/js/alert.js 
      - @MeMyBundle/Resources/public/bootstrap/js/button.js 
      - @MeMyBundle/Resources/public/bootstrap/js/carousel.js 
      - @MeMyBundle/Resources/public/bootstrap/js/collapse.js 
      - @MeMyBundle/Resources/public/bootstrap/js/dropdown.js 
      - @MeMyBundle/Resources/public/bootstrap/js/modal.js 
      - @MeMyBundle/Resources/public/bootstrap/js/tooltip.js 
      - @MeMyBundle/Resources/public/bootstrap/js/popover.js 
      - @MeMyBundle/Resources/public/bootstrap/js/scrollspy.js 
      - @MeMyBundle/Resources/public/bootstrap/js/tab.js 
      - @MeMyBundle/Resources/public/bootstrap/js/transition.js 
     filters: [?uglifyjs2] 

使用指定的資產:

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

傾銷他們:

php app/console cache:clear --env=prod 
php app/console assetic:dump --env=prod 

產生兩個文件,大小相同的內容:

%kernel.root_dir%/../web/assetic/mybundle_front_js.js 
%kernel.root_dir%/../web/js/055a364.js 

是否有任何理由在prod環境下生成兩個相同的文件?

+0

這也適用於調試,嘗試使用'--no-debug',不確定但應該防止生成'/ assets'文件夾...但只是一個猜測。 –

回答

2

第一個文件assetic/mybundle_front_js.js是通過配置指定的資產生成的文件。第二個文件是從模板中的資產塊使用的結果文件。

如果你會使用兩種資產在assetic塊:

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

你最終會在assetic/文件夾兩個命名資產的文件,並在包含這兩個文件的內容js/文件夾一個文件。

猜測爲什麼還有assetic/文件夾中的文件:您可以在不使用{% javascripts %}塊的情況下乾淨地配置命名資產並對其進行引用。

相關問題