我有一个应用程序,允许用户使用Rails Carrierwave上传PDF文档。当我使用cap:deploy
进行部署时,生产服务器上的uploads目录不会被包含在内以便移动到新版本。我怎么还包括它?
答案 0 :(得分:4)
不要移动文件。而是创建shared
目录的符号链接,该符号链接在部署之间持续存在。
典型示例是在每次部署后将shared/uploads
目录与public/uploads
进行符号链接。请务必在public/uploads
中将.gitignore
设置为已忽略,以避免在部署时发生冲突。在创建符号链接之前,您还可以rm -rf
目录。
符号链接操作看起来大致如下:
run "ln -s #{shared_path}/uploads #{release_path}/public/uploads"
您可以为此添加单独的任务,或者只是在正确的位置将其附加到现有任务。