【问题标题】:Rails - Dokku - Paperclip: Every push to production breaks(404s) user uploaded imagesRails - Dokku - Paperclip:每次推送到生产都会中断(404s)用户上传的图像
【发布时间】:2016-07-28 02:40:36
【问题描述】:

使用 Dokku 在 Digital Ocean 上运行 Rails 4 应用程序。用户可以通过回形针上传图像。我可以很好地上传图像,应用程序运行良好并显示所有图像。一旦我做了一个像文本更改这样的小改动并运行 $git push dokku master,所有上传的图像都是 404。

型号:

class ProductImage < ActiveRecord::Base
  has_attached_file :image, default_url: "/images/:style/missing.png", 
  :path =>":rails_root/public/system/:attachment/:id/:basename_:style.:extension",
  :url =>"/system/:attachment/:id/:basename_:style.:extension",
  styles: { thumb: ["64x64#", :jpg], medium: ['200x200>', :jpg], 
    large: ['400x400>', :jpg] }
  validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/

  belongs_to :product
end

我有 rails_12factor 宝石。这是 config 文件:

Rails.application.configure do
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
  config.assets.js_compressor = :uglifier
  config.assets.compile = true
  config.assets.digest = true
  config.log_level = :debug
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
  config.active_record.dump_schema_after_migration = false
end

任何帮助将不胜感激!

【问题讨论】:

    标签: ruby-on-rails ruby paperclip dokku


    【解决方案1】:

    Dokku 充当 heroku。您应该使用 s3 或任何存储服务来上传图片。

    或者您可以添加持久存储并挂载到您的独库容器应用http://dokku.viewdocs.io/dokku/advanced-usage/persistent-storage/

    【讨论】:

      【解决方案2】:

      您可以创建一个 docker 选项,让它像没有插件的持久存储一样。或者例如,创建一个这样的文件夹

      mkdir FOLDER_NAME
      

      然后你可以像这样添加一个 docker 选项

      dokku docker-options:add APP_NAME run "-v /home/dokku/FOLDER_NAME:/app/public/uploads"
      dokku docker-options:add APP_NAME deploy "-v /home/dokku/FOLDER_NAME:/app/public/uploads"
      

      如果您正在使用 Rails 应用程序并且您的上传文件位于 app/public/uploads 中,则此选项,如果不这样做,只需将该文件夹更改为您上传文件的位置。

      【讨论】:

      • dokku docker-options:add APP_NAME deploy "-v /home/dokku/FOLDER_NAME:/app/public/uploads" 这就是我所缺少的......抱歉这么晚才回来。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 2012-07-09
      • 2019-05-12
      • 2014-01-18
      • 2023-04-10
      相关资源
      最近更新 更多