2011-08-02 95 views
4

我無法理解Assetic捆綁工作方式背後的原因,遺憾的是官方文檔不是太冗長。理解資產捆綁

我只是沒有看到它處理靜態路徑和URL的方式有什麼好處。說,

{{ asset("bundles/mybundle/css/main.css") }} 

被翻譯成「/bundles/mybundle/css/main.css」。什麼,只是預先與'/'?但我可以手動完成。我期望至少有一些像Django中的STATIC_DIR,它指定了所有靜態文件所在的位置,並充當靜態根目錄。

而且

{% stylesheets '@MyBundle/Resources/public/css/main.css' %} 
    <link rel="stylesheet" href="{{ asset_url }}" type="text/css" media="all" /> 
{% endstylesheets %} 

變得像

<link rel="stylesheet" href="/app_dev.php/css/618ab99_main_1.css" type="text/css" media="all" /> 

但它不會將任何靈活性添加到您的佈局 - 你仍然有編輯您的佈局文件時靜態的文件名得到改變。而且您仍然需要手動編寫HTML「鏈接」標籤。

考慮到您可以使用Sf2控制檯在web/dir中創建符號鏈接到您的包的公用文件夾,我發現Assetic的工作方式有點模糊。我確信我錯過了一些東西,所以我希望有人能爲我清楚。謝謝。

回答

4

使用一個腳本不會有太大的影響。 Assetic管理持有其他好處:

但隨着Assetic,你可以,但是你要爲他們提供服務之前(或 從任何地方加載它們)操縱這些資產。這意味着您可以:

Minify and combine all of your CSS and JS files 
Run all (or just some) of your CSS or JS files through some sort of compiler, such as LESS, SASS or CoffeeScript 
Run image optimizations on your images 

還有更多的好,你可以將它們合併爲更少的請求,將其過濾,控制網址,緩存等

Resource

我愛: p