2017-04-11 24 views
0

我的應用程序在開發環境中工作,但在Heroku中有一些圖像,字體和js函數不起作用。Heroku中的資產管道問題:在Rails應用程序中不加載一些圖像和js文件

現在我會磨練一個圖像。該網頁應該加載位於圖像中

資產/圖像/模式/ blue_pattern.gif

在我的SCSS文件我有:

image-url("patterns/blue_pattern.gif") 

我的Heroku的日誌包含以下內容:

2017-04-11T10:39:54.873200 + 00:00 heroku [router]:at = info method = GET path =「/ images/patterns/blue_pattern.gif」 host = matchmeplease.herokuapp.com request_id = cf0c2d58-a616-484f-b659-cd4cbfe94118 fwd =「115.70.240.190」 dyno = web.1 connect = 2ms service = 5ms status = 404 bytes = 1789 protocol = https

我會老實說,我不完全理解配置文件。

我的配置/環境/ production.rb文件:

Rails.application.configure do 
    config.force_ssl = true 
    config.cache_classes = true 
    config.eager_load = true 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 
    config.public_file_server.enabled = false 

    config.assets.js_compressor = :uglifier 
    config.assets.css_compressor = :sass 

    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 

    config.serve_static_assets = true 
end 

的config/application.rb中:

require_relative 'boot' 
require 'rails/all' 
require 'geocoder' 
require "geocoder/railtie" 
Geocoder::Railtie.insert 

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

module MatchMe 
    class Application < Rails::Application 
    config.assets.paths << Rails.root.join("app", "assets", "font") 
    end 
end 

編輯:以下烏代·庫馬爾·達斯意見後(見下文),我現在有圖像和字體的工作,但我的js文件仍然沒有加載出於某種原因。

當我運行RAILS_ENV=production bundle exec rake assets:precompile我得到如下:

rake aborted! 
ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key 
/usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/core/service.rb:244:in `validate_options' 
/usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/core/service.rb:268:in `handle_settings' 
/usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/core/service.rb:98:in `new' 
/usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/core/services_mixin.rb:16:in `new' 
/usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/storage.rb:27:in `new' 
/usr/local/rvm/gems/ruby-2.3.0/gems/carrierwave-0.11.2/lib/carrierwave/uploader/configuration.rb:83:in `eager_load_fog' 
/usr/local/rvm/gems/ruby-2.3.0/gems/carrierwave-0.11.2/lib/carrierwave/uploader/configuration.rb:96:in `fog_credentials=' 
/home/ubuntu/workspace/matchme/config/initializers/carrier_wave.rb:5:in `block in <top (required)>' 
/usr/local/rvm/gems/ruby-2.3.0/gems/carrierwave-0.11.2/lib/carrierwave/uploader/configuration.rb:118:in `configure' 
/usr/local/rvm/gems/ruby-2.3.0/gems/carrierwave-0.11.2/lib/carrierwave.rb:14:in `configure' 
/home/ubuntu/workspace/matchme/config/initializers/carrier_wave.rb:4:in `<top (required)>' 
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load' 
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `block in load' 
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency' 
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/engine.rb:648:in `block in load_config_initializer' 
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/notifications.rb:166:in `instrument' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/engine.rb:647:in `load_config_initializer' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/engine.rb:612:in `block (2 levels) in <class:Engine>' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/engine.rb:611:in `each' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/engine.rb:611:in `block in <class:Engine>' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:30:in `instance_exec' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:30:in `run' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:55:in `block in run_initializers' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:44:in `each' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:44:in `tsort_each_child' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:54:in `run_initializers' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/application.rb:352:in `initialize!' 
/home/ubuntu/workspace/matchme/config/environment.rb:5:in `<top (required)>' 
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require' 
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require' 
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency' 
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/application.rb:328:in `require_environment!' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/application.rb:448:in `block in run_tasks_blocks' 
/usr/local/rvm/gems/ruby-2.3.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/task.rb:62:in `block (2 levels) in define' 
/usr/local/rvm/gems/ruby-2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>' 
/usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval' 
/usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>' 
Tasks: TOP => environment 
(See full trace by running task with --trace) 

我不知道這是爲什麼,因爲我的AWS S3功能可在我的應用程序完全正常。

+0

你運行一個耙資產:預編譯? –

+0

是的。現在唯一在Heroku中不起作用的是js文件。 – xeno7

回答

1

config/application.rb添加以下代碼,並bundle它:

config.serve_static_assets = true 

gem 'rails_12factor', group: :production 

此運行RAILS_ENV=production bundle exec rake assets:precompile後。

欲瞭解更多詳情,請訪問https://devcenter.heroku.com/articles/rails-4-asset-pipeline

+0

嘿,謝謝!這似乎適用於圖像和字體,但js文件仍然無法正常工作。我會發布當我運行bundle exec命令時會發生什麼。 – xeno7

+0

歡迎!檢查您的瀏覽器控制檯是否有任何JS文件錯誤。 –

+0

沒有錯誤。由於某些原因,js文件只是不能在生產中加載。 – xeno7

相關問題