2016-07-28 17 views
0

Running Rails 4 Anwendung auf Digital Ocean mit Dokku. Benutzer können ein Bild per Büroklammer hochladen. Ich kann die Bilder gut hochladen, und die Anwendung läuft großartig und zeigt alle Bilder an. Sobald ich eine kleine Änderung wie eine Textänderung machen und ich laufe Master $ git push dokku, hochgeladen alle Bilder 404.Schienen - Dokku - Büroklammer: Jeder Schub in die Produktion bricht (404s) Benutzer hochgeladen Bilder

Modell:

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 

ich die rails_12factor Juwel haben. Hier ist die Config Datei:

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 

Jede Hilfe wird sehr geschätzt!

Antwort

1

Sie können eine Docker Option schaffen es wie persistenten Speicher ohne ein Plugin zu haben. oder beispielsweise einen Ordner wie diese

mkdir FOLDER_NAME 

dann können Sie eine Docker Option hinzufügen, wie diese

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" 

dieses, wenn Sie mit einer Rails-Anwendung und Ihre Uploads sind in app/public/uploads arbeiten Wenn nicht, ändern Sie einfach den Ordner, in den Sie die Dateien hochladen.

+0

dokku Docker-Optionen: ":/app/public/uploads -v/home/dokku/FOLDER_NAME" Das ist, was mir fehlte .... sorry für so spät zurück APP_NAME deploy hinzuzufügen. –

+0

cool, akzeptiere die Antwort, wenn dir das hilft – xploshioOn