Deployment question: How do I symlink to a shared images fol

I’m deploying my web app with Capistrano 2, my users have content
which is stored in the public/images folder and I need this to be
stored outside the app, probably in the shared folder, but where I’m
having trouble is when I deploy the app, 1. I can’t get symlinks to
work from images -> …/…/shared/system/images and I don’t know how to
get Capistrano to recreate this link after each deploy.

Any ideas?

Hi Ivan

here’s what I do with Capistrano 1 (if you already know this and I
didn’t understand your post well enough, just ignore it :slight_smile:

desc “After symlinking current version, install database.yml, assets,
and update rights”
task :after_update_code do

We do not have database.yml under SVN as we don’t want anyone


access to SVN to be able to access the production database.

Link it from the shared folder.

run “ln -s #{deploy_to}/#{shared_dir}/config/database.yml

The assets folder must be kept between releases

run “rmdir #{current_release}/public/assets” # remove the folder
present for development
run “ln -s #{deploy_to}/#{shared_dir}/assets #{current_release}/



– Thibaut

Thanks for that Thibaut,

I can see how it could be modified for what I need, I’ll give it a go.


Hi Ivan,

one common mistake when creating symlinks using relative paths for the
target is specifying the relative path relative to the current directory
and not relative to the new symlinks directory.


the following does not work. The created symlink in public/ is pointing
at RAILS_ROOT/shared.

ln -s …/shared/system/images public/

the correct way is:

ln -s …/…/shared/system/images public/

The example recipe that Thibaut Barrère gave you avoids this problem by
using full absolute paths (provided by the deploy_to and current_release

Hope this helps,

John. - UK Rails Xen Hosting

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs