【问题标题】:Rails and Paperclip storing images in a specific path sets wrong URLRails 和 Paperclip 在特定路径中存储图像会设置错误的 URL
【发布时间】:2016-07-31 10:50:57
【问题描述】:

我想使用普通文件存储适配器存储我的图像。

这是我的 PAPERCLIP_STORAGE_OPTS:

PAPERCLIP_STORAGE_OPTS = {
    :styles => { :thumb => '170x170!#', :medium => '450x300!>', :large => '600x400!>',:desktop => '750x300!>'},
    :convert_options => { :all => '-quality 100' },
    :processor       => [ :papercrop ],
    :path => "/opt/www/myapp/images/:class/:attachment/:id_partition/:style/:filename"
  }

这是我的模型:

class User < ActiveRecord::Base

  attr_accessor :PAPERCLIP_STORAGE_OPTS

  has_attached_file :user_photo, PAPERCLIP_STORAGE_OPTS_THUMB

当用户上传照片时 - 它实际上将图像存储在我系统上的正确位置:

/opt/www/myapp/images/users/user_photos/000/000/050/original/picture

但是当我去显示图像时,像这样:

<%=image_tag current_user.user_photo.url(:thumb), :height=> "30", :width=> "30" %>

找不到图片,在我的日志中,我在这个 URL 看到了图片请求:

ActionController::RoutingError (No route matches [GET] "/system/users/user_photos/000/000/050/thumb/picture"):

创建的完整 URL 是:

https://www.myapp.com/system/users/user_photos/000/000/050/thumb/picture?1460285803 - 无法解决。

如何配置回形针以允许我的图像存储在此特定 URL /opt/www/myapp/images/ 中,并且仍然可以通过我的 rails 应用程序中的回形针正确访问和链接?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 paperclip


    【解决方案1】:

    您必须设置 URL 选项:

    对我来说是:

      has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>", :small=>"60x60>" },
                             :path => ':rails_root/public/system/:class/:id/:style/:filename',
                             :url => '/system/:class/:id/:style/:filename'
    

    不确定您的情况,因为您将图像直接存储在应用程序文件夹中,因此您可以尝试(从控制台测试并修改它):

    :path => "/opt/www/myapp/images/:class/:attachment/:id_partition/:style/:filename",
    :url => '/images/:class/:attachment/:id_partition/:style/:filename'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多