2011-10-26 14 views
10

संक्षेप में समस्या यह है कि विकास मोड में हम सीएसएस या जेएस फाइलों में बदलाव करेंगे लेकिन इन फ़ाइलों के हमेशा कैश/पुराने संस्करण प्राप्त करेंगे। मैंने कुछ भी नहीं किया था। मैंने कई बार कॉन्फ़िगरेशन की जांच की और कॉन्फ़िगरेशन मानों के प्रत्येक संयोजन की कोशिश की लेकिन हमेशा एक ही परिणाम प्राप्त करना जारी रखा: बासी/कैश की गई फ़ाइलें। मुझे वास्तव में उत्पादन मोड में भागना पड़ा और परीक्षण में हर बदलाव के बाद सर्वर को पुनरारंभ करना पड़ा।रेल 3.1.1 संपत्ति पाइपलाइन हेरोोकू कैशिंग गोचा

मैंने इस मुद्दे पर अपने बालों को फाड़ने के लिए दिन बिताए, संपत्ति पाइपलाइन पर दर्जनों स्टैक ओवरफ्लो प्रश्नों को देखा, लेकिन इसे कभी भी संबोधित नहीं किया, इसलिए मैंने सोचा कि मैं इसे यहां पोस्टरिटी के लिए पोस्ट करूंगा।

हम हेरोकू का उपयोग करते हैं और हमारी संपत्ति को प्रीकंपाइल करते हैं क्योंकि हेरोोकू हमारे लिए प्रीकंपाइल करने में असफल रहता है (हम यह भी उपयोग करते हैं जो कि हुकोकू प्रीकंपिलेशन विफलता का कारण है)। तो हमारे प्रीकंपील्ड संपत्तियों को हरोकू तक पहुंचाने के लिए हमें उन्हें गिट में देखना होगा।

यहां समस्या है।

जब हम रेलवे में अपग्रेड किए गए 3.1.1 संपत्ति प्रीकंपिलेशन ने नाम में एमडी 5 हैश के साथ और बिना दोनों फाइलें बनाईं। मैंने इस बारे में बहुत कुछ नहीं सोचा और आगे बढ़कर इन सभी फाइलों की जांच की ताकि मैं उसकेोकू को धक्का दे सकूं। कुछ समय बाद मैंने विकास मोड में कैश किए गए परिणामों के साथ समस्या देखी। एमडी 5 हैश के बिना प्रीकंपिल्ड और चेक इन संपत्तियों को सार्वजनिक/परिसंपत्तियों से स्थैतिक फाइलों के रूप में सेवा दी जा रही है, जो हमें/ऐप/परिसंपत्तियों में किए गए किसी भी बदलाव को देखने से रोकती हैं।

आखिर में यह महसूस करने के बाद मैंने गिट आरएम/सार्वजनिक/संपत्ति चलाई और सबकुछ फिर से काम करता है। तो टेकवे है: गिट में संपत्ति की जांच सावधान रहें!

इसे एक प्रश्न में बदलने के लिए: अन्य लोग यह कैसे करते हैं? क्या मुझसे साफ़ - साफ़ कुछ चीज़ चूक रही है? मुझे वास्तव में पसंद है कि हेरोोकू मेरे लिए मेरी संपत्ति का प्रीकंपाइल करने के लिए है, लेकिन यह एक डीबी कनेक्शन त्रुटि के साथ असफल रहा है जो मैं इकट्ठा करता हूं। मैंने आशा की थी कि रेल 3.1.1 ने इसे ठीक किया लेकिन ऐसा नहीं हुआ।

उत्तर

12

क्या आपने इस devise issue को जिथब पर देखा है? विशेष रूप से जोस Valim कहते

रेल 3.1.1 अंतिम एक विधि config.assets.initialize_on_precompile कहा जाता है। यदि आप इसे गलत पर सेट करते हैं, तो आप अच्छे होने चाहिए लेकिन यह आपको पर आपकी संपत्तियों तक पहुंचने की अनुमति नहीं देगा (जो आपको शायद वैसे भी नहीं करना चाहिए)।

शायद यह आपके लिए हेरोकू पर प्रीकंपाइल होने की अनुमति देगा।

+0

डीटीआई, मैंने इस प्रश्न को पोस्ट करने से पहले इस सटीक विन्यास की कोशिश की थी लेकिन यह उस समय मेरे लिए काम नहीं करता था। हालांकि, मैंने अभी कोशिश की है, इस बार डेविस 1.4.9 के साथ और देखो और यह काम करता है! सुझाव के लिए धन्यवाद जिसने मुझे फिर से कोशिश की। –

+0

@ जेफकटलर-स्टैम खुश है कि यह काम किया! मैं उसके पोकल पर रेल 3.1.1 ऐप भी होस्ट कर रहा हूं लेकिन अभी तक डिवाइसेज नहीं जोड़ा है (लेकिन जल्द ही होगा) – Dty

+1

मुझे लगता है कि आप इसे config/application.rb –

0

Heroku से this guide देखें। यह रेल 3.1 ऐप्स को तैनात करने के 3 तरीकों की रूपरेखा तैयार करता है। इनमें से दो को स्थानीय प्रीकंपिलेशन की आवश्यकता नहीं है।

+0

धन्यवाद - लेकिन मेरे लिए इनमें से कोई भी काम नहीं है। जैसा कि मैंने इस सवाल में उल्लेख किया है, मुझे लगता है कि यह तैयार होने के कारण है। स्लग संकलन के दौरान प्रीकंपिलेशन हमेशा डेटाबेस कनेक्शन त्रुटि के साथ विफल रहता है। –

+0

आप कह रहे हैं कि रन टाइम संकलन आपके लिए विफल रहता है? –

+0

हां, रनटाइम संकलन विफल रहता है इसलिए मैं उसकेोकू को धक्का देने से पहले w/precompilation अटक गया हूँ। –

1

कारण संपत्ति precompilation काम नहीं करता है अच्छी तरह से हो सकता है, कि Heroku ENV वार्स स्लग संकलन (तैनात) पर उपहार के रूप में यहां कहा गया है नहीं कर रहे हैं:

http://devcenter.heroku.com/articles/rails31_heroku_cedar

एक (प्रायोगिक) तरीका नहीं है ENV वास्तव में इसी कारण तैनाती के दौरान वार्स सक्षम करने के लिए, यहाँ जानकारी प्राप्त हो:

http://devcenter.heroku.com/articles/labs-user-env-compile

आशा इस मदद करता है।

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