2014-01-09 40 views
0

我是Symfony(2.4)的新手,無法理解Assetic如何通過應用程序服務資產,而不是通過文件系統進行開發。Symfony:資產不使用控制器與自舉捆綁?

特別是,我試圖獲得BrainCrafted Bootstrap Bundle的設置,這樣我就不必爲自己的資產轉儲它以開發工作。

在我的基礎模板文件,我有:

<link href="{{ asset('/css/bootstrap.css') }}" rel="stylesheet" media="screen"> 

當我使用app_dev.php呈現頁面時,路徑不會改變,仍然嘗試通過/css/bootstrap.css加載它,這不存在。

我的資源設置爲「use_controller」設置爲true。

但是,如果我有這樣一個樣式表:

{% stylesheets '@MyCustomBundle/Resources/public/css/*' %} 
    <link rel="stylesheet" href="{{ asset_url }}" /> 
{% endstylesheets %} 

然後URL樣式表正確根植與「app_dev.php」。

爲什麼不把主要的asset枝函數prepend app_dev.php?

回答

1

BootstrapBundle使用config.yml配置Assetic。您需要使用php app/console assetic:dump轉儲資產以生成CSS文件。

如果你想你的枝杈模板中配置您的樣式表,你應該使用stylesheets(由DovydasBartkevičius提到的),如果要配置在樣式表中你config.yml您在使用php app/console assetic:dump生成靜態CSS和使用assets來將靜態文件包含在您的模板中。

BootstrapBundle使用config.yml配置Assetic,因此您必須轉儲資產。在開發過程中,每次源更改時也可以使用php app/console assetic:dump --watch來生成CSS。

+0

謝謝,這個智慧非常有幫助。 – Brian

0

{{ asset }}函數只是添加一個路徑到項目的資產文件夾。似乎您的資產位於軟件包的目錄中,因此它們不是公用的,無法訪問。

http://symfony.com/doc/current/book/templating.html#linking-to-assets

{% stylesheets %}{% javascripts %}真正從束需要資源文件,如果存在的話(壓縮,等),並在通過控制器請求供應它們應用於過濾器。

您可以使用命令行API php app/console assetic:dump轉儲資產文件。

http://symfony.com/doc/current/cookbook/assetic/asset_management.html#dumping-asset-files

0

如果您將絕對路徑傳遞給asset函數,那麼它將返回參數而根本不會改變它。