2012-05-29 22 views
7

önderlemeyi değil ben Heroku tırmık varlıklarını çalıştığını biliyoruzHeroku/Yakut-on-Raylar hatası: ön derleme görevi:: Görüntü

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

Ve production.rb görüntüleri derleme için bunu söyledim

# 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] 

Neden hala bu 500 hatası alıyorum?

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> 

İlginç bir şekilde, çok iyi görünen diğer sayfalarda resimlerim var. Bazı görüntüler işe yaramaz Neden bilmiyorum, ama bazı ...

+0

'twitter_64.png' öğesinin varlık dizininde ('app/assets/images',' lib/assets/.. 'veya' vendor/assets..') olduğundan emin misiniz? – luacassus

+0

Neden görüntüleri önceden sıkıştırmak istersiniz? – ksol

cevap

7

Öncelikle, hem de bu set var emin olacaktır:

config.assets.initialize_on_precompile = false 

Bu işe yaramazsa, bu denemeye değer önbellek oluşturmadan önce ön derleme görevi el ile çalıştırmak için; bu bir çözüm değil, ama her şeyden eğer geçici bir çözüm sen koyarak emin olun

config.assets.compile = true 
+0

Bunun için teşekkürler, RAILS_ENV = üretim paketi çalıştırıcısı komisyon varlıklarını çalıştır: itme işleminden önce precompile, benim için çalıştı. – Jason

1

ayarlamak olacaktır başarısız,

RAILS_ENV=production bundle exec rake assets:precompile 

Son: Ben bu şekilde yapılması küçük farklar vardır düşünüyorum

app/assets/images 

ve yılında görüntüleri değil yılında

public/assets 

doğrudan.

rake assets:precompile dosyasını çalıştırın ve gelişip gelişmediğini görün. Biraz kafa karıştırıcı olabilir.

+0

, bu görüntüleri genel dizine kopyalar. Genel dizine eklendikten sonra uygulama/varlık/resim dizinindeki görüntüleri siler misiniz? Dosyalara nasıl başvurulacağı konusunda da sorun yaşıyorum. Normal adlarını veya stars-xxxx.jpg adını kullanmalı mıyım? – flobacca

+1

1) Rails sisteminden aldıkları garip isimleri, sadece normal isimlerini kullanmak zorunda değilsiniz. Alt klasörde iseler, göreceli yollarını verin, aksi halde bile. Ne yapacağını biliyor. 2) Hayır, kopyalandıklarında uygulama/varlık/resim dizinini silmeyin. – mjnissim