Jquery plugins 将jquery插件添加到Symfony 2.1项目

Jquery plugins 将jquery插件添加到Symfony 2.1项目,jquery-plugins,symfony,assets,assetic,Jquery Plugins,Symfony,Assets,Assetic,如何将jQuery插件添加到Symfony 2.1项目中 我使用composer安装所有前端资产,因此所有插件都存储在Symfony/vendor目录中 我可以指定要加载到模板中的JS文件,如下所示: {% javascripts filter='?yui_js' output='js/compiled/plugins.js' '%kernel.root_dir%/../vendor/author/plugin1/plugin.js' '%kernel.root_dir%/../

如何将jQuery插件添加到Symfony 2.1项目中

我使用composer安装所有前端资产,因此所有插件都存储在Symfony/vendor目录中

我可以指定要加载到模板中的JS文件,如下所示:

{% 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'
%}
致电后:

php ./app/console assetic:dump ...
所有指定的文件都将被编译并放置在Symfony/web目录下


但是如果某个插件需要的不仅仅是一个JS或CSS文件呢?如果它需要从插件目录(web服务器的文档根目录之外)中动态加载一些图像、样式或脚本,该怎么办?

不幸的是,这是Assetic的一个小问题。将css文件与
assetic:dump
组合在一起会破坏插件的内部目录结构。这几乎取决于插件自身的架构,它如何从资产转储中生存下来

将资产文件从Bundle/Resources/public/folder复制或符号链接到web/bundles/directory的一个选项


我通常做的是将外部库文件(css、js和图像)直接放在web/下的适当子文件夹中。当css和js文件组合并放置到web根目录(使用
assetic:dump
)时,所有插件文件都会从相应的子文件夹中找到。在CDN环境中工作时,此方法也有效。然而,这并不是最优雅的解决方案,它稍微违背了所有捆绑包(或插件)应该彼此分开的想法。

谢谢您的回复。将插件放在捆绑包中是违反最佳实践的,我不太喜欢手动将插件资产复制到web目录中,因为这将很难管理和更新。我只是看不到任何其他的选择。