जांचें कि आपके पास यह कॉन्फ़िगरेशन/वातावरण/उत्पादन
. में है# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
मूल रूप से आपकी समस्या यह है कि आपकी संपत्ति स्वचालित रूप से संकलित नहीं हो रही है।
अधिक जानकारी यहाँ:http://devcenter.heroku.com/articles/rails31_heroku_cedar
संपादित करें:
रेल 3.1 से हम एसेट्स पाइपलाइन का उपयोग करने जा रहे हैं। इसका मतलब है कि आपको अपने सभी एसेट (इमेज, जावास्क्रिप्ट, सीएसएस) को app/assets
में डालना होगा . 3.1 से पहले उन्हें public/**/*
. में डाल दिया जाएगा .
विकास मोड में रेल 3.1 स्वचालित रूप से संकलित करने जा रहा है (जेएस और सीएसएस दोनों को छोटा करें, कुछ मामलों में छवियों को बेस 64 में बदलें, आदि) एक छोटा, संस्करण पैकेज बनाते हुए आपकी सभी संपत्तियां।
एक व्यावहारिक उदाहरण के लिए, bundle exec rake assets:precompile
चलाएं आपके प्रोजेक्ट में। public/
में नए फ़ोल्डर पर एक नज़र डालें . आप इसे बाद में सुरक्षित रूप से हटा सकते हैं।
उत्पादन मोड में यह स्वचालित नहीं है। आप या तो संपत्तियों का स्वत:संकलन सक्षम कर सकते हैं, या मैन्युअल रूप से bundle exec rake assets:precompile
चला सकते हैं तैनाती से पहले।
एसेट पाइपलाइन के बारे में अधिक जानकारीhttp://guides.rubyonrails.org/asset_pipeline.html
उपयोगी:https://github.com/dnagir/guard-rails-assets