我正在使用Ruby on Rails 3.0.9,Paperclip和Capistrano宝石。当我在运行Ubuntu 10.04的VPS上部署我的应用程序(使用Capistrano)并尝试提交Paperclip附件时,它将无法正常工作。我知道问题与public
目录的文件和文件夹权限有关(我上传该目录中的附件)。
因此,我不是每次部署应用程序时都设置权限手动,而是想写一个Capistrano配方,以便以“自动”方式设置这些权限 。 我该怎么做?
我应该在本地计算机(运行Snow Leopard 10.6.7的Mac OS)中设置文件和文件夹权限,以便Capistrano将正确部署和设置这些权限吗?或者,我应该在system "chmod -R 777 #{RAILS_ROOT}/public"
文件中添加config/environments/production.rb
之类的代码吗?
答案 0 :(得分:3)
你接近错了。
我确定你想要在部署之间保留你的附件,不是吗? 那么您的Paperclip附件应该位于“共享”目录下,如日志,tmp,pids等......
如果您尊重Paperclip默认位置:“:rails_root / public / system /:attachment /:id /:style /:filename”。 并且您不会使用公共/系统目录来破坏您的SVN或Git。
解决方案就像使用所需权限的:deploy_to / shared / system 目录一样简单。让Paperclip和Capistrano为您无缝处理该系统目录。