回形针不显示图像 (rails api)
Paperclip not displaying image (rails api)
我有一个用户模块并且生成了回形针附件:profile_pic
user.rb:
has_attached_file :profile_pic,
style: { :medium => "300x300>", thumb: "100x100>" },
default_url: "/images/:style/missing.png"
控制器:
image_base = params[:manager][:profile_pic]
if image_base != nil
image = Paperclip.io_adapters.for(image_base)
image.original_filename = params[:manager][:file_name]
current_user.profile_pic = image
current_user.errors.delete(:profile_pic)
current_user.save
end
config/initializers/paperclip.rb:
Paperclip::DataUriAdapter.register
它没有显示任何错误,但如果我尝试显示图像,它会给我以下错误:
ActionController::RoutingError (No route matches [GET] "/system/managers/profile_pics/000/000/008/original/icon_new.png"):
当我在控制台中尝试时:
user.profile_pic.display
/system/managers/profile_pics/000/000/008/original/icon_new.png?
1556082410 => nil
图片已保存在 public 文件夹中
默认文件夹如下,所以Paperclip上传到正确的地方:
:rails_root/public/system/:class/:attachment/:id_partition/:style/:filename
但您似乎无法访问正确的位置。你试过user.profile_pic.url
了吗?我尝试了我的工作示例,.display
和 .url
都相同,但我使用的是 AWS S3 存储桶。
user.profile_pic.url
应该是在网上找到文件的地方。
user.profile_pic.path
应该是在文件系统上找到文件的位置。
问题出在生产模式上,通过在 production.rb
中添加以下行解决了这个问题
config.public_file_server.enabled = true
我有一个用户模块并且生成了回形针附件:profile_pic
user.rb:
has_attached_file :profile_pic,
style: { :medium => "300x300>", thumb: "100x100>" },
default_url: "/images/:style/missing.png"
控制器:
image_base = params[:manager][:profile_pic]
if image_base != nil
image = Paperclip.io_adapters.for(image_base)
image.original_filename = params[:manager][:file_name]
current_user.profile_pic = image
current_user.errors.delete(:profile_pic)
current_user.save
end
config/initializers/paperclip.rb:
Paperclip::DataUriAdapter.register
它没有显示任何错误,但如果我尝试显示图像,它会给我以下错误:
ActionController::RoutingError (No route matches [GET] "/system/managers/profile_pics/000/000/008/original/icon_new.png"):
当我在控制台中尝试时:
user.profile_pic.display
/system/managers/profile_pics/000/000/008/original/icon_new.png?
1556082410 => nil
图片已保存在 public 文件夹中
默认文件夹如下,所以Paperclip上传到正确的地方:
:rails_root/public/system/:class/:attachment/:id_partition/:style/:filename
但您似乎无法访问正确的位置。你试过user.profile_pic.url
了吗?我尝试了我的工作示例,.display
和 .url
都相同,但我使用的是 AWS S3 存储桶。
user.profile_pic.url
应该是在网上找到文件的地方。
user.profile_pic.path
应该是在文件系统上找到文件的位置。
问题出在生产模式上,通过在 production.rb
中添加以下行解决了这个问题config.public_file_server.enabled = true