Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symfony 2 - Working with assets

I need some tips on how to work with assets in Symfony 2. For example, do we have to always perform the assets:update every time an image is added ? I know Assetic take care of the management on css and javascript files but what about images? What would be the best practice for the front-end development with Symfony 2 ? How do you guys setup your css, images and js files in your app to make it easy to develop, deploy and change ?

like image 482
Frank6 Avatar asked Mar 29 '12 18:03

Frank6


2 Answers

Regarding images, if you added it into your public folder, I think there's no need to perform assets:update

However, if you add the image within the resources folders of a bundle, you might have to, depending on your OS and which options you used when called assets:install

If you're using an OS which supports symlinks (linux, OS X, and I guess all OS but Windows), you can install the assets calling (I don't exactly remember the call, the important thing here is the symlink option):

php app/console assets:install web --symlink 

This way, instead of having a copy of each bundle's resources, you'll have a symlink, so there should be no need to update. If you have an OS which doesn't support symlinks, I think you'll have to keep updating or reinstalling assets (in fact, I always used assets:install, I didn't knew there was an update option :P).

Regarding the set up, I usually put all css, js, images and any public resources inside a bundle if it is used only within the bundle, and place it onto the public folder if it's used by many bundles, or I plan to use it in other bundles.

like image 151
alghimo Avatar answered Oct 12 '22 22:10

alghimo


As of Symfony 2.7 this will generate relative symlinks in web directory:

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

In composer.json add:

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

This will also generate relative symlinks on composer update.

like image 24
Diablo Avatar answered Oct 13 '22 00:10

Diablo