2016-05-01 41 views
1

我有一個rails應用程序,在開發過程中工作正常,但無法獲取從css文件加載的某些圖像加載。雖然在html.erb上的圖片加載正常。RoR - 運行生產的應用程序無法加載CSS的圖像

這裏是我的CSS串:

.greyscale .banner-logo { 
    background: url(/assets/theme/greyscale/greyscale_main_logo.png) no-repeat center center; 
} 

這是我production.rb(有評論刪除):

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 = false 
    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 

,這裏是我的development.rb(有評論刪除) :

Rails.application.configure do 
    config.cache_classes = false 
    config.eager_load = false 
    config.consider_all_requests_local  = true 
    config.action_controller.perform_caching = false 
    config.action_mailer.raise_delivery_errors = false 
    config.active_support.deprecation = :log 
    config.active_record.migration_error = :page_load 
    config.assets.debug = true 
    config.assets.digest = true 
    config.assets.raise_runtime_errors = true 
end 

這裏是我assets.rb:

Rails.application.config.assets.version = '1.0' 
Rails.application.config.assets.precompile += [/.*\.js/,/.*\.css/] 

什麼我需要添加/修改我在production.rb,讓我從css文件查看圖像?

+0

任何錯誤?什麼是瀏覽器控制檯嘔吐? – Nithin

回答

0

嘗試在你的CSS這樣的事情。

url(image-path('greyscale_main_logo.png')) 

image-path通常用於獲取資產文件夾的正確路徑。您可能需要擴展以上「的主題/灰度/ grayscale_main_logo ......」

0

這是因爲資產管採用消化在資產文件名來引用您的資產在生產演示。爲了解決這個問題使用asset-path,或image-path

.greyscale .banner-logo { 
    background: url(image-path('theme/greyscale/greyscale_main_logo.png')) no-repeat center center; 
} 

這將工作參考app/assets/images/greyscale/greyscale_main_logo.png

1

我面臨了類似的問題,並指示圖像這樣的幫助。

.greyscale .banner-logo { 
    background-image: image-url("theme/greyscale/greyscale_main_logo.png") no-repeat center center; 
} 

這樣的資產管道將試圖尋找圖像中assets/images/theme/grescale文件夾中。

1

根據原始文件擴展名將文件擴展名更改爲css.erbscss.erb。然後,你可以預編譯過程中使用

background: url("<%= asset_path 'theme/greyscale/greyscale_main_logo.png') %>" no-repeat center center; 
相關問題