2012-03-29 4 views
32

Symfony 2でアセットを扱う方法についてのヒントが必要です。たとえば、アセットを常に実行する必要がありますか?画像を追加するたびに更新しますか?私はAsseticがCSSとJavaScriptファイルの管理を担当することを知っていますが、画像はどうですか? Symfony 2でのフロントエンド開発のベストプラクティスは何でしょうか?開発、展開、変更を簡単にするために、あなたのアプリでCSS、画像、およびJSファイルをどのようにセットアップしますか?Symfony 2 - アセットを使って作業する

+0

http://www.w3docs.com/snippets/symfony/how-to-keep-symlinks-in-web-bundles-after-composer-update.htmlもっと欲しいforever.If使用することができますについてのクールなと思うが、 '資産はありますか?私はどこにも言及していないし、Symfony/Asseticコードベースでは見つけられない。それが存在すれば、それについてもっと知りたいと思うだろう。 – Sam

+0

関連:http://stackoverflow.com/questions/12123069/how-to-properly-change-what-c​​omposer-or-symfony2-does-after-running-composer-up – Kzqai

答えて

74

画像について、あなたのパブリックフォルダに追加した場合、私は、あなたがバンドルのリソースフォルダ内の画像を追加した場合、あなたがする必要があるかもしれません、しかしassets:update

を実行する必要はありませんだと思うに応じてあなたのOSと呼び出されたときに使用されたオプションassets:install

シンボリックリンク(Linux、OS X、そして私はすべてのOSがWindowsだと思います)をサポートしているOSを使用している場合は、ここで重要なのはsymlinkオプションです):

php app/console assets:install web --symlink 

この方法では、各バンドルのリソースのコピーを持つ代わりにシンボリックリンクがあるので、更新する必要はありません。シンボリックリンクをサポートしていないOSをお持ちの場合は、アセットを更新または再インストールする必要があります(実際には、私はいつもassets:installを使用していました。

セットアップに関して、私は通常、バンドル内でのみ使用されている場合は、すべてのcss、js、イメージ、およびパブリックリソースをバンドルに入れ、それが多くのバンドルで使用されている場合はパブリックフォルダに置きます。それを他のバンドルで使用する予定です。 composer.jsonのアドオンで

php app/console assets:install web --symlink --relative 

+5

'symlink'はWindowsでも動作します – DoubleYo

+1

また、Composerを使用してベンダーパッケージを更新する場合は、composer.jsonファイルの '' {symfony-assets-install}:symlink}} 'を設定することを忘れないでください([docs ](http://symfony.com/doc/current/book/installation.html#updating-vendors))。 – Geert

+1

'symlink'は、管理者モードでcmd(またはgit bash)を実行しているときにもWindows上で動作します。 :) AsseticはWindowsでサポートされているhttp://php.net/manual/en/function.symlink.phpで動作するためです。 – Athlan

2

のSymfony 2.7のように、これはwebディレクトリ内の相対的なシンボリックリンクを生成します

"extra": { 
    "symfony-assets-install": "relative" 
} 

これもcomposer update上の相対的なシンボリックリンクを生成します。実際のコマンドupdate`:ここ

+0

composer.jsonはコミットされており、プロダクション環境でのインストール時に使用されるため、composer.jsonでこれを直接実行するかどうかはわかりません。 – Kzqai

+0

参照:http://stackoverflow.com/a/15797829/69993 – Kzqai

0

は--symlink.Youは、(設定)1時間を設定し、