2012-06-08 5 views
6

हेरोकू में एक रेल ऐप को तैनात करने के बाद, कोई जावास्क्रिप्ट फ़ंक्शन काम नहीं कर रहा है।जावास्क्रिप्ट अपनेोकू को तैनाती पर क्यों काम नहीं कर रहा है?

फ़ाइलों को संकलित किया गया प्रतीत होता है (हालांकि यह छोटा फ़ाइल में देखना आसान नहीं है)।

जावास्क्रिप्ट काम नहीं कर रहा है (यह उत्पादन में ठीक काम करता है) काम करने के लिए चरणों की तार्किक प्रक्रिया क्या है।

धन्यवाद

+0

रेल के किस संस्करण और कौन से heroku ढेर? यदि आप रेल का उपयोग कर रहे हैं 3.1+ मुझे विश्वास है कि आपको Heroku cedar stack – Dty

+0

हाय डीटीई पर होना चाहिए। मैं पोस्टर 9 बीटा –

उत्तर

3

कभी कभी मैं संपत्ति पाइपलाइन और यह मेरी गलतफहमी की वजह से मुद्दे हैं। तो क्या मैं सिर्फ सही ढंग से पैक किया जा रहा है सिर्फ एक सरल चेतावनी में रखा जाता है पृष्ठ लोड होने

alert('some-unique-string') 

पुश (कुछ यादृच्छिक पेज उपयोगकर्ताओं के लिए नहीं मिल सकता, आदि पर डाल दिया) यकीन है कि चीजों को बनाने के लिए क्या सर्वर तक कोड। फिर क्रोम में पेज लाएं और देव टूल्स का उपयोग करें, "स्क्रिप्ट" टैब प्राप्त करें। वहां से आप स्ट्रिंग some-unique-string की खोज कर सकते हैं क्योंकि आपकी स्ट्रिंग शाब्दिक को कम नहीं किया जाएगा। यदि आप इसे नहीं देखते हैं तो आप जानते हैं कि आपकी जावास्क्रिप्ट को किसी कारण से शामिल नहीं किया जा रहा है।

कम से कम आपको एक प्रारंभिक बिंदु देगा।

+0

डीटीई के साथ सीडर पर रेल 3.2 का उपयोग कर रहा हूं, जेएस निश्चित रूप से संकलित किया जा रहा है, और स्रोत में 'चेतावनी (' कुछ अद्वितीय-स्ट्रिंग ') मौजूद है। लेकिन यह नहीं चल रहा है। यह क्यों होगा? –

+0

संयोग से, अगर मैं दृश्य फ़ाइल में एक जेएस फ़ंक्शन को परिभाषित करता हूं, तो यह काम करता है। ई, जी,

+0

ठीक है, मुझे लगता है कि यह 2 मुद्दों के कारण है। सबसे पहले, application.js में स्क्रिप्ट का क्रम एक त्रुटि उत्पन्न कर रहा था जिसे मैंने देव पर्यावरण में नहीं उठाया था। दूसरा, मेरे पास स्क्रिप्ट पर है कि मैं मैनिफेस्ट में शामिल नहीं करना चाहता हूं। मैं इसे एक विशिष्ट पृष्ठ पर उपयोग कर रहा हूं, और इसे पृष्ठ के नीचे जाना होगा। मेरे पास वर्तमान में विक्रेता/संपत्तियों में यह फ़ाइल है, और तैनाती पर javascript_include_tag का उपयोग करके मुझे एक टेम्पलेट त्रुटि मिलती है, जेएस प्रीकंपिल्ड नहीं है। यह फ़ाइल कहां स्थित होनी चाहिए, और मुझे इसे कैसे कॉल करना चाहिए? –

6

यह समस्या संपत्ति पाइपलाइन से जुड़ी है। आपको संपत्ति संकलित करना चाहिए।

इसे हल करने के लिए, config/वातावरण/production.rb में सच करने के लिए बारी config.assets.compress,

यानी

config.assets.compress = true 

तो कोड फिर से RAILS_ENV=production bundle exec rake assets:precompile .

पुश चलाते हैं।

+0

धन्यवाद शामिथ। मेरे पास पहले से ही मेरी configs में 'assets.compress = true' है। हेरोोकू तैनाती पर precompiling प्रतीत होता है प्रतीत होता है। कम से कम, उस प्रभाव के लिए एक लॉग संदेश है। हालांकि मैं आपके 'बंडल निष्पादन' सुझाव का प्रयास करूंगा, और देखें कि यह कैसा चल रहा है। –

+0

धन्यवाद shamith, लेकिन यह काम नहीं करता –

+0

इसे देखें http://stackoverflow.com/questions/7294479/assets-pipeline-when-updating-to-rails-3-1-on-heroku –

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