2

どうすればjQueryプラグインをSymfony2.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ディレクトリに配置されます。

しかし、プラグインが1つ以上のJSまたはCSSファイルを必要とする場合はどうなるでしょうか。プラグインディレクトリ(Webサーバーのドキュメントルート外)内から画像、スタイル、またはスクリプトを動的にロードする必要がある場合はどうなりますか?

4

1 に答える 1

2

残念ながら、これはAsseticのわずかな問題です。cssファイルをと組み合わせるとassetic:dump、プラグインの内部ディレクトリ構造が壊れる可能性があります。プラグインがアセットのダンプからどのように生き残るかは、プラグイン自体のアーキテクチャにほぼ依存します。

1つのオプションは、アセットファイルをBundle / Resources /public/フォルダーからweb/bundles/ディレクトリにコピーまたはシンボリックリンクするコマンドを使用することです。assets:install

私が通常行うことは、外部ライブラリファイル(css、js、および画像)をweb/のすぐ下の適切なサブフォルダーに配置することです。cssファイルとjsファイルを組み合わせてWebルートに配置すると(を使用してassetic:dump)、すべてのプラグインファイルが適切なサブフォルダーから検出されます。この方法は、CDN環境で作業する場合にも機能します。ただし、これは最も洗練されたソリューションではなく、すべてのバンドル(またはプラグイン)を互いに分離しておく必要があるという考えに少し違反しています。

于 2012-10-21T08:10:27.450 に答える