ruby-on-rails - 使用 Capistrano 进行部署 : How to set file and folder permissions?

标签 ruby-on-rails ruby ruby-on-rails-3 permissions capistrano

我正在使用 Ruby on Rails 3.0.9、Paperclip 和 Capistrano gems。当我在运行 Ubuntu 10.04 的 VPS 上部署应用程序(使用 Capistrano)时,我尝试提交回形针附件,但它不起作用。我知道问题与 public 目录的文件和文件夹权限有关(我在该目录中上传附加文件)。

因此,我不想在每次部署应用程序时手动设置权限,而是想编写一个 Capistrano 配方,以便以“自动”方式设置这些权限我该怎么做?

我是否应该在本地计算机(运行 Snow Leopard 10.6.7 的 Mac OS)中设置文件和文件夹权限,以便 Capistrano 正确部署和设置这些权限?或者,我应该在 config/environments/development.rb 文件中添加一些代码,例如 system "chmod -R 777 #{RAILS_ROOT}/public" 吗?

最佳答案

你的做法是错误的。

我确定您希望在部署之间保留附件,不是吗? 那么你的回形针附件应该位于“共享”目录下,如日志、tmp、pids 等...

如果您尊重 Paperclip 默认位置:“:rails_root/public/system/:attachment/:id/:style/:filename”。 而且您不会用 public/system 目录破坏您的 SVN 或 Git。

解决方案非常简单,只需使用您所需的权限设置 :deploy_to/shared/system 目录即可。让 Paperclip 和 Capistrano 为您无缝处理该系统目录。

关于ruby-on-rails - 使用 Capistrano 进行部署 : How to set file and folder permissions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137820/

相关文章:

ruby - iRuby 内核不断被杀死

ruby-on-rails - rails : Multi-tenancy with Devise and Apartment gem

css - rails 4 : How to access database in SCSS

ruby - 在 Mechanize 中为选择列表设置值

Ruby NameError 未定义的局部变量或方法`e

jquery - Poltergeist - 关闭 JQMIGRATE 警告

ruby-on-rails - 如何将当前的 Basecamp API 与 ActiveResource 结合使用?

ruby-on-rails - 如何从hidden_​​field_tag通过link_to参数传递值(Rails)

ruby-on-rails - 具有相同命名空间的嵌套 Controller 的隐式路由

jquery - 寻找自动完成字段来替换选择菜单