2016-09-08 11 views
0

Herokuの制作サイトの画像が見つからないという問題があります。私はそれがアプリケーションで探しているファイルシステムとは異なるダイジェストにまで追跡しました。私はHerokuのコンソールにアクセスし、asset_path()私が手を使用して資産を検索する場合は、次のHerokuの資産が読み込まれておらず、資産が古いと思われる

app[web.1]: Started GET "/assets/nfl_teams/nfcn/chi-6317d0375db3876a5057f2da59bab1dc.jpeg" for 24.55.52.101 at 2016-09-08 23:10:18 +0000 

app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/nfl_teams/nfcn/chi-6317d0375db3876a5057f2da59bab1dc.jpeg"): 
app[web.1]: vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
app[web.1]: vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
app[web.1]: vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/rack/logger.rb:38:in `call_app' 

そして:最後に

$ heroku run rails console 
Running rails console on ⬢ fbpm... up, run.7463 
Loading production environment (Rails 4.2.5) 
irb(main):001:0> puts helper.asset_path("nfl_teams/nfcn/chi.jpg") 
/assets/nfl_teams/nfcn/chi-93d8c8c53ac98c60f7f3fee1fade067dfa9489b24b8fa4bb9fedd4b12da129de.jpg 
=> nil 
irb(main):002:0> 

とを例えば、ログに私は次のエラーを参照してくださいHerokuのはbashを見て、ディレクトリ内のファイルをチェック私が取得:

$ heroku run bash 
Running bash on ⬢ fbpm... up, run.7321 
cd public~ $ cd public/assets/nfl_teams/nfcn 
~/public/assets/nfl_teams/nfcn $ ls chi*.jpg 
chi-93d8c8c53ac98c60f7f3fee1fade067dfa9489b24b8fa4bb9fedd4b12da129de.jpg 
~/public/assets/nfl_teams/nfcn $ 

ので、コンソールで私は、次のファイルを取得した資産のパスを見て:

私は、ディレクトリ構造に見たとき

/assets/nfl_teams/nfcn/chi-93d8c8c53ac98c60f7f3fee1fade067dfa9489b24b8fa4bb9fedd4b12da129de.jpg

と私は同じファイルを取得します。しかし、何らかの理由でアプリケーションがこのファイルを探しています:存在し、ルーティングエラーをスローしません

/assets/nfl_teams/nfcn/chi-6317d0375db3876a5057f2da59bab1dc.jpeg。ここで

は私のGemfileです:

source 'https://rubygems.org' 
ruby '2.2.4' 
#ruby-gemset=Rails_fb 

gem 'rails','4.2.5' 
gem 'bcrypt', '3.1.11' 
gem 'annotate' 
gem 'faker', '1.6.3' 
gem 'select2-rails' 
gem 'simple_form', '3.1.1' 
gem 'cocoon' 

# 
# Bootstrap support gems 
# 
gem 'bootstrap-sass' 
gem 'bootstrap-will_paginate', '0.0.10' 
gem 'font-awesome-sass', '4.6.2' 
gem 'font-awesome-rails' 
gem 'sass-rails', '~> 5.0.4' 
#gem 'select2-sass-bootstrap-rails' 

# The following Gem is used to parse the NFL page for schedules to build 
# a season. 
gem 'nokogiri' 

# Database. Using the same database for production/development 
gem 'pg' 

group :development, :test do 
    gem 'rspec-rails', '~>3.0' 
    gem 'factory_girl_rails', '4.7.0' 
    gem 'capybara', '2.7.1' 
    gem 'database_cleaner' 
    gem 'guard-rspec', '~> 4.2' 
    gem 'spork-rails' 
    gem 'guard-spork' 
    gem 'childprocess', '0.5.8' 
    gem 'letter_opener_web', '~>1.2.0' 
end 

group :test do 
    gem 'pry' 
    gem 'selenium-webdriver', '2.53.0' 
    gem 'libnotify', '0.9.1' 
end 

gem 'uglifier', '2.7.2' 
gem 'coffee-rails', '4.1.1' 
gem 'jquery-rails', '3.1.4' 
gem 'jquery-turbolinks', '2.1.0' 
gem 'turbolinks', '2.5.3' 
gem 'jbuilder', '2.4.1' 

group :doc do 
    gem 'sdoc', '0.4.1', require: false 
end 

group :production do 
    gem 'rails_12factor' 
end 

# To use debugger 
# gem 'debugger' 

gem 'execjs' 
gem 'therubyracer', :platforms => :ruby 

そして、ここで私は(私はasset_path()の呼び出しでとない場合の両方で、それを試してみた)私の見解で画像にアクセスするために使用しているコードは次のとおりです。

<%= image_tag(asset_path(team.imagePath), size: "40") %> 

誰でもアプリが間違ったファイルを探している理由を教えていただけますか?明らかに資産パイプラインにはいくつかの切り離しがありますが、私はどこを把握できませんか?

この問題は、Ruby 2.0.0からRuby 2.2.4にアップグレードした後に始まりました。これは私のGemをいくつか更新する原因となりました。

答えて

0

うまくいけば、これが役に立ちます。

  • すくい資産:RailsのでHerokuの上の資産の新しいプリコンパイルを強制するためには4次の操作を実行する必要がプリコンパイル

その後のgit:

  • レーキ資産を壊しコミット/プッシュをマスターしてHerokuにプッシュすると、新しいプリコンパイルが行われ、うまくいけば資産パイプラインが同期されるはずです。 rakeアセットを使わないでください:新しいコンパイルを強制するものではないので、きれいにしてください。

  • 関連する問題