我刚刚注意到,在使用cap deploy:migrations
将我的rails应用程序重新部署到制作时,我通过我的管理表单上传了任何图像(例如创建了带有头像图像的推荐)图像链接现已破裂。只要我不重新部署任何代码,图像就会显得很好,这是不可取的,因为我经常推送代码更改。我认为这与capistrano在“发行版”中创建文件结构的方式有关。对于每个部署,但我不确定如何解决此问题。
我也没有使用git跟踪public/uploads
,因为我不希望我在localhost上使用的虚假内容出现在制作中。
所以,在我最新的代码推送之前,我已经将所有图像放在那里,因为我刚添加它们。现在,推后没有图像:
以下是我认为相关的文件(请告诉我,除了这些文件之外,您还需要了解这些文件):
avatar_uploader.rb:
class AvatarUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
process :resize_to_fit => [200, 200]
def extension_white_list
%w(jpg jpeg gif png)
end
end
答案 0 :(得分:4)
默认情况下,Capistrano链接public/system
目录。所以要坚持你的图像,只需改变
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
到
def store_dir
"system/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
答案 1 :(得分:0)
好像你没有在deploy.rb中配置linked_dirs
变量(如果是Capistrano 3),或者没有从public/uploads
指定shared/public/uploads
的sym-link (在Capistrano 2的情况下)。
如果没有它,所有部署都将“覆盖”public/uploads
目录。
Here是更多详情。