【问题标题】:Paperclip not displaying image (rails api)回形针不显示图像(rails api)
【发布时间】:2019-07-15 01:47:41
【问题描述】:

我有一个用户模块,并且我生成了回形针附件:profile_pic

用户.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 

图片已保存在公共文件夹中

【问题讨论】:

    标签: ruby-on-rails-5 paperclip


    【解决方案1】:

    默认文件夹如下,所以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 应该是在文件系统上找到文件的位置。

    【讨论】:

    • 网址:/system/managers/profile_pics/000/000/008/original/icon_new.png?1556083471
    • /system/managers/profile_pics/000/000/008/original/icon_new.png?1556083471 => 无
    【解决方案2】:

    问题在于生产模式,通过在 production.rb 中添加以下行解决了这个问题

    config.public_file_server.enabled = true
    

    【讨论】:

      猜你喜欢
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 2018-06-13
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      相关资源
      最近更新 更多