2016-06-24 16 views
0

In meinem lokalen Server funktioniert alles gut, aber in der Produktion (EC2 Amazon) einige, aber nicht alle meiner Schriften und Bilder nicht geladen.Keine Bilder und Schriften Produktion mit Capistrano und Rails

Dies ist application.rb:

require File.expand_path('../boot', __FILE__) 

# Pick the frameworks you want: 
require "active_model/railtie" 
require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "action_view/railtie" 
require "sprockets/railtie" 
require 'carrierwave' 
require 'carrierwave/orm/activerecord' 

# require "rails/test_unit/railtie" 

# Require the gems listed in Gemfile, including any gems 
# you've limited to :test, :development, or :production. 
Bundler.require(*Rails.groups) 

module TestApp 
    class Application < Rails::Application 
    #adding fonts to assets pipeline 
    config.assets.paths << Rails.root.join("app", "assets", "fonts") 
    # Settings in config/environments/* take precedence over those specified here. 
    # Application configuration should go into files in config/initializers 
    # -- all .rb files in that directory are automatically loaded. 
    config.autoload_paths << Rails.root.join('lib') 
    # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. 
    # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. 
    # config.time_zone = 'Central Time (US & Canada)' 

    # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 
    # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 
    #config.i18n.default_locale = :ru 
    config.serve_static_files = true 
    config.serve_static_assets = true 
    config.assets.compile = true 
    end 
end 
+0

Speichert carrierwave Bilder nicht im 'public'-Ordner (wie Büroklammer)? – Vucko

Antwort

1

Viele Male Vermögenswerte in Entwicklung geladen wird, aber einmal in der Produktion je nachdem, wie Sie auf die Vermögenswerte verknüpfen, können die Verbindungen brechen. Stellen Sie sicher, dass Sie die Asset-Link-Helfer verwenden, die von Rails zum Verknüpfen mit Assets bereitgestellt werden.

Beispiele:

In regelmäßigen Ansichten:

<%= image_tag "rails.png" %> 

Sie können Sass-Helfer verwenden für wie in Sheets Schriften und Bilder verweisen:

src: font-url(...) 

image-url("rails.png") /** becomes url(/assets/rails.png) **/ 
image-path("rails.png") /** becomes "/assets/rails.png". **/ 

Wenn Sie nicht SASS mit Sie können Ihre CSS in css.erb ändern und Dinge wie tun:

.class { background-image: url(<%= asset_path 'image.png' %>) } 

Weitere Asset-Link-Beispiele: http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets

+0

Thx für diesen. Aber sag mir bitte, wie ich Code in der Produktion bearbeiten kann? –

+0

Das hängt davon ab, wie Sie den Code für die Produktion bereitgestellt haben. Wenn Ihr Code git oder ein anderes Versionskontrollsystem verwendet, müssen Sie die Änderungen festschreiben und die Änderungen auf das prod-System übertragen und den Server neu starten. Edelsteine ​​wie Capistrano oder Mina können helfen, dies für Sie zu automatisieren. – beaorn