首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Capistrano和Carrierwave

Capistrano和Carrierwave
EN

Stack Overflow用户
提问于 2012-05-14 23:38:55
回答 4查看 1.8K关注 0票数 2

我正在使用Capistrano部署Ruby on Rails和NodeJS应用程序。每次部署时都会删除uploads文件夹。

这在几个地方出现了,但似乎不起作用:

代码语言:javascript
复制
# Keep File Uploads
  task :symlink_uploads do
    run "ln -nfs #{shared_path}/rails/uploads  #{release_path}/rails/public/uploads"
  end

  after 'deploy:update_code', 'deploy:symlink_uploads'

回购:

代码语言:javascript
复制
  repo:
    /node
    /rails

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-17 05:38:17

确保删除现有的公共/上传文件夹,将-f传递给ln并不包括删除目标目录(或者至少对我来说还没有这样做)

我的symlink目录任务通常如下所示

代码语言:javascript
复制
task :symlink_uploads do
  run "rm -rf #{release_path}/rails/public/uploads} && ln -nfs #{shared_path}/rails/uploads  #{release_path}/rails/public/uploads"
end

显然,要确保在公共/上传的签入版本中没有任何您需要的东西!

票数 2
EN

Stack Overflow用户

发布于 2012-05-17 05:47:18

对于这个问题,还有另一个解决方案。您可以将您的uploads目录添加到Capistrano的shared_children中,它将自动完成所有的魔术操作。您可以在以下答案中找到更多详细信息:https://stackoverflow.com/a/9710542/835935

票数 3
EN

Stack Overflow用户

发布于 2012-05-17 05:05:21

你试过了吗

代码语言:javascript
复制
after 'deploy:update_code', ':symlink_uploads'

您的:symlink_uploads任务不在名称空间中,因此请执行上述操作或将其放入名称空间中

代码语言:javascript
复制
namespace :deploy do
  task :symlink_uploads do
    # ...
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10586548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档