1

我已经设置 capistrano 以部署到登台和生产服务器。困扰我的最后一件事是如何处理用户上传的内容 - 目前,我的上传文件夹及其内容在我的 git repo 中进行了版本控制。如果可能并且不错的做法,我想做的是使用部署脚本来执行通常的部署工作,而且还可以通过向脚本添加任务来将产品服务器上的任何新上传内容推送到存储库。

这是一个明智/可能的举动吗?大家平时是怎么处理这种事情的呢?

4

1 回答 1

0

您应该将内容与代码库分开。

一种策略是将您的内容存储在部署端点(在服务器上,它将随着您的应用程序的使用而随着时间的推移而构建)并在部署期间将 capistrano 符号链接到它。

假设您在 '{rails_root}/public' 中有一个名为 'uploads' 的文件夹——您将在部署配方中添加如下内容:

# Create a symlink to our 'uploads' folder
namespace :deploy do
  task :symlink_uploads, :roles => :app do
    run "ln -s #{deploy_to}/shared/uploads #{release_path}/public/uploads"
  end
end
after "deploy:update_code", "deploy:symlink_uploads"
于 2013-01-28T01:17:36.710 回答