2012-10-21 59 views
2

如何將一些jQuery插件添加到Symfony 2.1項目中?將jquery插件添加到Symfony 2.1項目中

我使用作曲家安裝所有前端資源,因此所有插件都存儲在Symfony /供應商目錄中。打完電話後

{% javascripts filter='?yui_js' output='js/compiled/plugins.js' 
    '%kernel.root_dir%/../vendor/author/plugin1/plugin.js' 
    '%kernel.root_dir%/../vendor/author/plugin2/plugin.js' 
    '%kernel.root_dir%/../vendor/author/plugin3/plugin.js' 
%} 

而且:

我可以指定JS-文件模板加載這樣

php ./app/console assetic:dump ... 

所有指定的文件將被編譯和的Symfony /網下放置目錄。

但是如果某個插件需要的不僅僅是一個JS或CSS文件呢?如果它需要從插件目錄(它不在Web服務器的文檔根目錄中)動態加載一些圖片,樣式或腳本,該怎麼辦?

回答

2

不幸的是,這是Assetic的一個小問題。將css文件合併到assetic:dump可以破壞插件的內部目錄結構。這要看插件自己的體系結構如何從資產傾銷中生存下來。

一個選項is to use assets:install command將資源文件從Bundle/Resources/public /文件夾複製或符號鏈接到web/bundles /目錄。

我通常會做的是將外部庫文件(css,js和圖像)直接放在web /正確的子文件夾下。當css和js文件合併並放置到Web根目錄(assetic:dump)時,所有插件文件都可以從正確的子文件夾中找到。此方法在CDN環境中工作時也可以使用。然而,這不是最優雅的解決方案,它略微違反了所有Bundle(或插件)應該保持彼此分離的想法。

+0

感謝您的回覆。將插件放到捆綁包中是違背最佳做法的,我不太想將手動插入資源複製到** web **目錄中,因爲它很難管理和更新。我只是沒有看到任何其他選項。 –