2012-01-25 17 views
53

मैं एक ऐप को रेल 3.1 (और अब 3.2 पर) में परिवर्तित कर रहा हूं और Railscast on the asset pipeline देखा। मैंने अपनी सभी तृतीय-पक्ष jquery प्लगइन फ़ाइलों को/विक्रेता/संपत्ति/जावास्क्रिप्ट/निर्देशिका में स्थानांतरित कर दिया।रेल संपत्ति संपत्ति पाइपलाइन: सभी/विक्रेता/संपत्ति/जावास्क्रिप्ट/सहित सभी के लिए मानक तरीका?

//= require jquery 
//= require jquery_ujs 
//= require_tree . 
//= require_self 

मुझे एहसास हुआ require_tree . कॉल केवल/ऐप्स/आस्तियों/javascripts/निर्देशिका के लिए पेड़ को लोड करता है: मेरे /app/assets/javascripts/application.js में मैं निम्नलिखित है। (क्या यह सही है?) सभी "विक्रेता" जावास्क्रिप्ट को शामिल करने का सबसे अच्छा तरीका क्या है? (मैं इस बिंदु पर आदेश देने के बारे में चिंतित नहीं हूं।) बेशक मुझे उन्हें /app/assets/javascripts/application.js में लाइन से लाइन की आवश्यकता हो सकती है।

//= require_tree . 

और फिर /app/assets/javascripts/application.js में जोड़ने के निम्नलिखित:

//= require vendor_javascripts 
मेरे अन्य विचार निम्नलिखित के साथ /vendor/assets/javascripts/vendor_javascripts.js का निर्माण करना था

हालांकि यह थोड़ा सा गुंजाइश लगता है। स्वचालित रूप से सभी "विक्रेता" (और/या "lib") जावास्क्रिप्ट को शामिल करने का एक बेहतर तरीका है?

पीएस। मैंने this about index.js files देखा, लेकिन मैं संभावित रूप से index.js नामक कई फ़ाइलों के साथ समाप्त हो जाऊंगा, है ना? ओह, और मैंने पूरे सर्वर को फिर से शुरू करने का प्रयास किया।

उत्तर

72

आप अपने app/assets/javascripts/application.js फ़ाइल में कुछ इस तरह जोड़ सकते हैं सभी विक्रेता javascripts शामिल करने के लिए:

//= require_tree ../../../vendor/assets/javascripts/. 
+1

पूरे सापेक्ष पथों के बारे में भूल गए :) धन्यवाद, बहुत अच्छा काम करता है! – robertwbradford

+0

मेरे लिए भी काम किया, धन्यवाद! –

+11

दरअसल, मुझे लगता है कि ओपी का सुझाया गया दृष्टिकोण कम गुंजाइश है – kizzx2

21

मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन आप विक्रेता/आस्तियों/जावास्क्रिप्ट फ़ोल्डर पर मालसूची फ़ाइल बना सकते हैं :

#vendor/assets/javascripts/my_jquery_plugins/manifest.js 
# require_tree . 

और तुम में application.js:

//= require my_jquery_plugins/manifest.js 

मैं च आप रेल 4 का उपयोग कर रहे हैं, के रूप में manifest.jsindex.js और अपने application.js में नाम:

//= require my_jquery_plugins 

यह से रिश्तेदार पथ वर्णित कम hacky है।

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