जब मैं bundle exec rake assets:precompile --trace
चलाता हूं, तो मेरा प्रीकंपिलेशन विफल रहता है लेकिन मुझे इसके लिए कोई विशिष्ट कारण नहीं दिख रहा है।रेक संपत्ति प्रीकंपाइल विफल
मेरी उत्पादन के लिए इस pastebin देखें: http://pastebin.com/zggZyPyM
जब मैं bundle exec rake assets:precompile --trace
चलाता हूं, तो मेरा प्रीकंपिलेशन विफल रहता है लेकिन मुझे इसके लिए कोई विशिष्ट कारण नहीं दिख रहा है।रेक संपत्ति प्रीकंपाइल विफल
मेरी उत्पादन के लिए इस pastebin देखें: http://pastebin.com/zggZyPyM
Precompiling संपत्ति स्मृति का एक बहुत लेता है। ~ = 400 एमबी मेरे मामले में। यह संभव हो सकता है कि अत्यधिक स्मृति उपयोग के कारण ओएस प्रक्रिया की हत्या कर रहा है। यह जांचने के लिए कि क्या यह मामला है, आप syslog जांच सकते हैं।
आप स्थिति से बचने के लिए अपने सर्वर की याददाश्त बढ़ा सकते हैं। यदि यह संभव नहीं है, तो मैं सुझाव दूंगा कि आप अपने स्थानीय सिस्टम पर संपत्तियों को प्रीकंपाइल करें, उन्हें रेपो में समर्पित करें और सर्वर पर तैनात करें। इस तरह आपको अपने सर्वर पर संपत्तियों को संकलित नहीं करना पड़ेगा। हालांकि आप किसी भी तरह से पहले जेनरेट की गई संपत्तियों को हटाने और प्रक्रिया को स्वचालित करने के तरीकों को देखना चाहते हैं।
, लेकिन समस्या हल हो गई थी मैंने पहले node.js स्थापित करने का प्रयास किया था। और फिर, निम्न आदेश bundle exec rake assets:precompile
चलाया। केवल तभी मैंने त्रुटि को नहीं देखा।
प्रारंभ में, मैंने सोचा कि यह कम स्मृति की वजह से भी था। लगभग सभी चल रहे अनुप्रयोगों को साफ किया, लेकिन समाधान नहीं मिला। इसके अलावा, मैंने रुबी को प्रशासक के रूप में खोला। सुनिश्चित नहीं है कि इससे भी मदद मिली है, लेकिन समस्या हल हो गई थी।
इस समस्या को संपत्तियों को प्रीकंपाइल करने के लिए node.js जेएस रनटाइम का उपयोग करके भी हल किया जा सकता है क्योंकि यह स्पष्ट रूप से कम स्मृति पदचिह्न है। उबुनुतू 14.04 के लिए मुझे apt-get install nodejs
चलाने की आवश्यकता है, फिर Gemfile
में gem 'node'
के साथ डिफ़ॉल्ट जेएस रनटाइम को प्रतिस्थापित करें, bundle
चलाएं और अंततः प्रीकंपाइल को दोबारा शुरू करें। मैं किसी अन्य स्थान पर प्रीकंपिलिंग के खिलाफ सावधानी बरतता हूं क्योंकि आप सीएसएस या जेएस परिवर्तन के बाद ऐसा करना भूल सकते हैं, जिससे त्रुटियां आती हैं।
क्या आपके पास जावास्क्रिप्ट रनटाइम स्थापित है? लिनक्स वीएम पर संपत्तियों को पूर्व-संकलित करने का प्रयास करते समय मुझे इस सप्ताह एक समान त्रुटि का सामना करना पड़ा। – Zajn
यदि ज़ज़न का सुझाव काम नहीं करता है, तो आपको अपना syslog जांचना चाहिए। प्रीकंपिलिंग संपत्तियों में बहुत सारी मेमोरी होती है ("रेल की तुलना में अधिक") और संभव है कि ओएस उस प्रक्रिया को बंद कर रहा है। – rubish
आह! @ रुबिश आप सही हैं ... स्मृति से बाहर चल रहे हैं। – jasonlfunk