【问题标题】:How get correct path default image using gem dragonfly?如何使用 gem Dragonfly 获取正确的路径默认图像?
【发布时间】:2016-04-06 05:30:43
【问题描述】:

我用 gem 蜻蜓加载文件

我有模特照片:

class Photo < ApplicationRecord
    dragonfly_accessor :avatar do
      default  'public/avatar.png'    
    end
................................
end

当我打电话给pry(#&lt;#&lt;Class:0x007f83508fb8f0&gt;&gt;)&gt; @photo.avatar.url

我明白了

=> "/media/W1siZmYiLCJwdWJsaWMvYXZhdGFyLnBuZyJdXQ/avatar.png?sha=338938a0ea07d56b"

设置文件蜻蜓。

蜻蜓.rb

require 'dragonfly'

# Configure
Dragonfly.app.configure do
  plugin :imagemagick

  secret "7c510e8ed95f9929f09981ef5f42ffc75034703184575044d2835ebbbd2a350b"

  url_format "/media/:job/:name"

  datastore :file,
    root_path: Rails.root.join('public/system/dragonfly', Rails.env),
    server_root: Rails.root.join('public')
end

# Logger
Dragonfly.logger = Rails.logger

# Mount as middleware
Rails.application.middleware.use Dragonfly::Middleware

# Add model functionality
if defined?(ActiveRecord::Base)
  ActiveRecord::Base.extend Dragonfly::Model
  ActiveRecord::Base.extend Dragonfly::Model::Validations
end

我需要在 image_tag 中粘贴路径图像。如何获得正确的路径 .../public/avatar.png

【问题讨论】:

    标签: ruby-on-rails dragonfly-gem


    【解决方案1】:

    我创建了解决方案:

    dragonfly_accessor :avatar do
          default  Rails.root.join('public', 'images', 'default', 'avatar.png')    
        end
    

    【讨论】:

      【解决方案2】:

      试试这个

      img = Dragonfly[:images].fetch_file(File.join(Rails.root, 'public', 'toekomst', 'images', 'sample.png'))
      

      参考此链接 (http://markevans.github.io/dragonfly/rails/)

      【讨论】:

      • 如何添加我的路径 public/avatar.png?
      • 只需将您的图像添加到此路径assests/images
      • 我添加了 img = Dragonfly.app(:images).fetch_file(File.join(Rails.root, 'public', 'toekomst', 'images', 'avatar.png')) dragonfly_accessor :avatar do default img #'public/avatar.png' end 不显示:prntscr.com/aorxog。资产/图像中的图像
      【解决方案3】:

      您应该使用 remote_url 插入 url 以获得完整路径 喜欢

       @photo.avatar.remote_url
      

      如果要在图片标签中使用上传的图片,则可以直接使用

      image_tag(@photo.avatar.url)
      

      【讨论】:

      • 你能在dragonfly.rb文件中写设置吗?但是实际路径需要什么,因为@photo.avatar.url 会正确设置图像
      • 但是你可以直接使用上面的路径,比如 image_tag(@photo.avatar.url)
      • 当打开直接 url localhost/media/W1siZmYiLCJwdWJsaWMvYXZhdGFyLnBuZyJdXQ/… 时,显示错误 - DRAGONFLY: fetch file /home/ubuntu/workspace/public/avatar.png disallowed - 使用 fetch_file_whitelist 来允许它
      猜你喜欢
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      • 2012-03-11
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多