2

如何将一些 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 文件怎么办?如果它需要从插件目录(不在网络服务器的文档根目录中)动态加载一些图像、样式或脚本怎么办?

4

1 回答 1

2

不幸的是,这是 Assetic 的一个小问题。将 css 文件合二为一assetic:dump可能会破坏插件的内部目录结构。它如何从资产倾销中幸存下来几乎取决于插件自己的架构。

一种选择是使用assets:install命令将资产文件从 Bundle/Resources/public/ 文件夹复制或符号链接到 web/bundles/ 目录。

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

于 2012-10-21T08:10:27.450 回答