我正在使用CarrierWave进行图片上传,我不知道应该在哪里放置这些文件以及如何在我的视图中访问这些文件。我主要在生产中出现这个问题,图像似乎缺失了。它在开发中工作得很好。
我应该在哪里放置这些文件,以便可以通过URL和视图访问它们?我试过把它放在'public / uploads / picture / 1 / image.jpg'但我仍然无法从网址访问图片
/assets/uploads/picture....
这样做的正确方法是什么?
class ImageUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
include CarrierWave::RMagick
#include CarrierWave::MiniMagick
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
[编辑]
所以我在包含所有图像的文件夹中做了'ls -al',这就是我得到的
drwxr-xr-x 2 root root 4096 Feb 20 23:07 . drwxr-xr-x 4 deployer root 4096 Feb 20 23:07 ..
-rw-r--r-- 1 root root 2313 Feb 20 23:07 doraemon.gif
-rw-r--r-- 1 root root 13367 Feb 20 23:07 profile_doraemon.gif
-rw-r--r-- 1 root root 2313 Feb 20 23:07 shoutout_thumb_doraemon.gif
-rw-r--r-- 1 root root 9201 Feb 20 23:07 thumb_doraemon.gif
看起来像文件上传时。这些文件归root所有。包含它的文件夹和子文件夹也归root所有。例如,这是包含上述文件的文件夹。
drwxr-xr-x 2 root root 4096 Feb 20 23:07 7
此外,这是视图/ HTML尝试访问的路径
<img alt="Thumb_doraemon" class="" data-id="7" src="/uploads/picture/image/7/thumb_doraemon.gif">
在服务器中,该文件位于
中public/uploads/picture/images/7/thumb_doraemon.gif