2012-05-29 16 views
7

precompiling नहीं मुझे पता है कि Heroku रेक संपत्ति चल रहा है: precompile कार्य:Heroku/रूबी-ऑन-रेल त्रुटि: छवि

-----> 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 में छवियों precompile करने के लिए यह बताया

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

दिलचस्प बात यह है कि मेरे पास अन्य पृष्ठों पर छवियां हैं जो ठीक दिखती हैं। क्यों कुछ छवियों कार्य नहीं करेगा पता नहीं है, लेकिन कुछ ...

+0

क्या आप सुनिश्चित हैं कि 'twitter_64.png' संपत्ति निर्देशिका (' ऐप/संपत्ति/छवियों ', 'lib/assets/..'' '' विक्रेता/संपत्ति ..') में है? – luacassus

+0

आप छवियों को प्रीकंपाइल क्यों करना चाहते हैं? – ksol

उत्तर

7

सबसे पहले, सुनिश्चित करें कि आप भी इस सेट होगा:

config.assets.initialize_on_precompile = false 

यदि वह काम नहीं करता है, यह कोशिश कर रहा लायक है स्लग बनाने से पहले प्रीकंपाइल कार्य मैन्युअल रूप से चलाने के लिए; मुझे लगता है कि जब इस तरह से किया सूक्ष्म अंतर हैं:

RAILS_ENV=production bundle exec rake assets:precompile 

अंतिम, यह एक समाधान नहीं है, लेकिन अगर सब और विफल रहता, एक अस्थायी समाधान

config.assets.compile = true 
+0

इसके लिए धन्यवाद, मेरे लिए काम करने से पहले 'RAILS_ENV = उत्पादन बंडल निष्पादन रेक संपत्तियां: प्रीकंपाइल 'चलाना। – Jason

1

स्थापित करने के लिए सुनिश्चित करें कि आप लगा रहे हैं सुनिश्चित किया जाएगा

app/assets/images 

और में आपकी छवियों में नहीं

public/assets 

सीधे।

फिर रन rake assets:precompile और देखें कि यह बेहतर है या नहीं। यह थोड़ा भ्रमित हो सकता है।

+0

यह छवियों को सार्वजनिक निर्देशिका में कॉपी करता है। क्या आप सार्वजनिक निर्देशिका में जोड़े जाने के बाद ऐप/संपत्ति/छवि निर्देशिका से छवियां हटाते हैं। फ़ाइलों को संदर्भित करने के तरीके में भी परेशानी है। क्या मुझे उनके सामान्य नाम या सितारों-xxxx.jpg नाम का उपयोग करना चाहिए। – flobacca

+1

1) आपको रेल सिस्टम से मिलने वाले अजीब नामों का उपयोग करने की ज़रूरत नहीं है, केवल उनके सामान्य नाम। अगर वे सबफ़ोल्डर में हैं, तो बस अपने रिश्तेदार पथ दें, अन्यथा यह भी नहीं। यह जानता है कि क्या करना है। 2) नहीं, ऐप/संपत्ति/छवियों की निर्देशिका को कॉपी करते समय हटाएं। – mjnissim

संबंधित मुद्दे