web-dev-qa-db-ja.com

Symfony 2-アセットの操作

Symfony 2でアセットを操作する方法に関するヒントが必要です。たとえば、画像が追加されるたびにasset:updateを常に実行する必要がありますか? Asseticがcssおよびjavascriptファイルの管理を行っていることは知っていますが、画像についてはどうですか? Symfony 2を使用したフロントエンド開発のベストプラクティスは何ですか?開発、デプロイ、変更を簡単にするために、アプリでcss、画像、jsファイルをどのように設定しますか?

33
Frank6

画像については、パブリックフォルダに追加した場合、assets:updateを実行する必要はないと思います

ただし、バンドルのリソースフォルダー内に画像を追加する場合は、OSとassets:installの呼び出し時に使用したオプションに応じて、必要になる場合があります。

シンボリックリンクをサポートするOS(Linux、OS X、およびWindows以外のすべてのOS)を使用している場合、アセット呼び出しをインストールできます(呼び出しを正確に覚えていませんが、ここで重要なのはシンボリックリンクオプションです) :

php app/console assets:install web --symlink

この方法では、各バンドルのリソースのコピーを保持する代わりに、シンボリックリンクが作成されるため、更新する必要はありません。シンボリックリンクをサポートしないOSを使用している場合、アセットを更新または再インストールし続ける必要があると思います(実際、常にassets:installを使用しましたが、更新オプションがあることは知りませんでした:P) 。

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

76
alghimo

Symfony 2.7以降、これによりwebディレクトリに相対シンボリックリンクが生成されます。

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

Composer.jsonで以下を追加します:

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

これにより、composer updateの相対シンボリックリンクも生成されます。

2
Diablo

--symlinkについて考えてみてください。一度設定(config)して永遠に使用できます。さらに必要な場合は http://www.w3docs.com/snippets/symfony/how-to-keep-symlinks -in-web-bundles-after-composer-update.html

0