2013-10-06 129 views
0

我不明白怎麼路徑工程assethic ..Symfony的2 assetic路徑

{% block stylesheets %} 
      <link href="{{ asset('/bundles/dproc/css/base.css') }}" type="text/css" rel="stylesheet" /> 
     {% endblock %} 

我的CSS和圖像都在/包/ DPROC /目錄。我的代碼顯示在下面的作品,但我無法理解爲什麼我應該使用資產的功能,我可以像下面這樣做,並得到同樣的結果

{% block stylesheets %} 
      <link href="/bundles/dproc/css/base.css" type="text/css" rel="stylesheet" /> 
     {% endblock %} 

那麼,什麼資產功能?或者我的路徑應該如何使用資產功能?

+0

另外,你認爲你的應用程序可以移動到另一個目錄級別,而不是「myapp.com」,它可能是「myapp.com/foo/bar」。這是'資產'函數派上用場,因爲它不僅附加了'/',而且附加了應用程序的基本路徑('/ foo/bar') –

回答

2

因爲你可能不應該那樣使用它。你或許應該使用Assetic用CSS這樣的:

{% block stylesheets %} 
    {% stylesheets 
    '/bundles/dproc/css/base.css' {# this will just get base.css #} 
    '/bundles/dproc/css/mycustomdir/* {# this will find all css files in that dir #} 
    %} 
    <link href="{{ asset_url }}" rel="stylesheet"> 
    {% endstylesheets %} 
{% endblock %} 

通過設置它像這樣(使用默認配置),在開發環境中,你會得到同樣的事情,如果你只是用<link .... >沒有assetic。但在生產環境中,您的整個stylesheets資產塊將合併爲一個文件以減少請求數量。

稍後,您可以設置一些css和javascript縮小器,並使它們在生產環境中運行。所以,當你切換到生產時,你將會擁有不錯的經濟效益cssjavascript,而在開發環境中,如果你根本沒有使用資產,你將擁有完全符合你的期望。此外,如果您使用lesssass或需要預編譯的內容,您可以只包含這些文件,並告訴資產在更改時自動重新編譯它們。

+0

好的,我會用你的例子,謝謝 –

+0

@TikoM如果它適用於你請接受答案:) –