मानक application.js
से नियंत्रक विशिष्ट जावास्क्रिप्ट तर्क को रखने के लिए और केवल प्रासंगिक नियंत्रक द्वारा इसे शामिल करने के लिए, मैं इसे अपने स्वयं के .js फ़ाइल में डाल रहा हूं यह इस तरह की तरह लेआउट से नियंत्रक नाम के आधार पर:रेल-3.1 पूर्व-संकलन नियंत्रक विशिष्ट जेएस संपत्ति
<%= javascript_include_tag "application", params[:controller] %>
कि बस ठीक काम करता है, लेकिन जब मैं उत्पादन करने के लिए एप्लिकेशन को तैनात (मैं Capistrano का उपयोग कर रहा है और एक पूर्व संकलित कार्य की स्थापना), संपत्ति पाइपलाइन नियंत्रक विशिष्ट जेएस फ़ाइलों में से किसी भी precompile नहीं है। मुझे लगता है कि ऐसा इसलिए है क्योंकि मेरी वास्तविक जावास्क्रिप्ट फ़ाइल को application.js में निर्देशों की आवश्यकता के संदर्भ में संदर्भित नहीं किया जाता है।
मैं अपने नियंत्रक विशिष्ट जेएस को application.js पर वापस ले जाकर, या स्पष्ट रूप से application.js से संदर्भित किए बिना इसका कैसे निपटूं?
क्या कोई अतिरिक्त सूची फ़ाइलों को पूर्व-संकलित करने के लिए संपत्ति पाइपलाइन को बताने का कोई तरीका है? मैं उत्पादन पर एक विशिष्ट फ़ाइल मैन्युअल रूप से कैसे संकलित कर सकता हूं?
अद्यतन
के रूप में यह turns out, आप अलग-अलग फ़ाइलों यहाँ config/environments/production.rb
में निर्दिष्ट कर सकते हैं:
config.assets.precompile += %w(achievements.js)
... या मैं बस आगे चला गया और चंचलता से हर JavaScript फ़ाइल के लिए यह कहा:
config.assets.precompile += %w(*.js)
यह वास्तव में स्वचालित होना चाहिए! –
यह ध्यान देने योग्य है कि precomile सूची में scss/कॉफी फ़ाइलों को जोड़ना काम नहीं करेगा! (और कोई त्रुटि फेंक दो, या तो!)। आपको केवल .js/css एक्सटेंशन के साथ नाम देना होगा। –