8

Herokuがrakeassets:precompileタスクを実行していることを知っています:

-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
-----> Rails plugin injection
       Injecting rails_log_stdout
       Injecting rails3_serve_static_assets
-----> Discovering process types
       Procfile declares types      -> (none)
       Default types for Ruby/Rails -> console, rake, web, worker
-----> Compiled slug size is 17.7MB
-----> Launching... done

そして、production.rbで画像をプリコンパイルするように指示しました

# from: http://stackoverflow.com/questions/8052865/rails-3-1-asset-pipeline-why-my-images-do-not-precompile-for-production
config.assets.precompile += %w[*.png *.jpg *.jpeg *.gif] 

では、なぜこの500エラーが発生するのでしょうか。

2012-05-29T02:57:15+00:00 app[web.1]: Started GET "/signin" for 46.114.68.16 at 2012-05-29 02:57:15 +0000
2012-05-29T02:57:15+00:00 app[web.1]: Processing by SessionsController#new as HTML
2012-05-29T02:57:15+00:00 app[web.1]:   Rendered sessions/new.html.erb within layouts/application (25.4ms)
2012-05-29T02:57:15+00:00 app[web.1]: Completed 500 Internal Server Error in 27ms
2012-05-29T02:57:15+00:00 app[web.1]: 
2012-05-29T02:57:15+00:00 app[web.1]: ActionView::Template::Error (twitter_64.png isn't precompiled):
2012-05-29T02:57:15+00:00 app[web.1]:     25: <div id="auths">
2012-05-29T02:57:15+00:00 app[web.1]:     27:   <a href="/auth/twitter" class="provider">
2012-05-29T02:57:15+00:00 app[web.1]:     26:   <h2>Or sign in through one of these:</h2>
2012-05-29T02:57:15+00:00 app[web.1]:     28:     <%= image_tag "twitter_64.png", :size => "64x64", :alt => "Twitter" %>Twitter</a>

興味深いことに、私は他のページにうまく表示されている画像を持っています。一部の画像が機能しない理由はわかりませんが、一部の画像は機能します...

4

2 に答える 2

7

まず、このセットもあることを確認してください。

config.assets.initialize_on_precompile = false

それでも問題が解決しない場合は、スラッグを作成する前にプリコンパイルタスクを手動で実行してみる価値があります。このようにすると、微妙な違いがあると思います。

RAILS_ENV=production bundle exec rake assets:precompile

最後に、これは解決策ではありませんが、他のすべてが失敗した場合、一時的な回避策は次のように設定することです

config.assets.compile = true
于 2012-06-08T08:44:01.243 に答える
2

画像を入れていることを確認してください

app/assets/images

ではなく_

public/assets

直接。

次に、実行rake assets:precompileして、改善されるかどうかを確認します。少し混乱する可能性があります。

于 2012-07-16T08:34:56.217 に答える