2011-08-15 10 views
26

मैं पाइपलाइन से एक विशेष जावास्क्रिप्ट फ़ाइल (modernizr) को बाहर करना चाहता हूं क्योंकि मैं इसे अलग से लोड करना चाहता हूं।रेल 3.1 पाइपलाइन - जावास्क्रिप्ट फ़ाइल को छोड़ दें

मैं शुरुआत में Modernizr लोड करना चाहता हूं और बाकी के जावास्क्रिप्ट को अंत में संयोजित करना चाहता हूं।

3.1 में संपत्ति पाइपलाइन में आवश्यकता के विपरीत करने का कोई तरीका है? अर्थात। एक बहिष्कार?

अग्रिम धन्यवाद।

एडम।

उत्तर

55

मैं

//= require_directory . 

को

//= require_tree 

बदलकर sprockets कार्यक्षमता रखने के लिए चुना है यह रहता है sprockets ऑटो लोड हो रहा है और आगे भी फ़ोल्डर में एक ही निर्देशिका में किसी भी फाइल, लेकिन नहीं।

यह मैं संपत्ति/javascripts/शीर्ष फ़ोल्डर में Modernizr.js ले जाएँ और मैन्युअल रूप से शीर्ष पर इसे लोड करने की अनुमति दी:

<%= javascript_include_tag "top/modernizr" %> 

और ले जाने के

<%= javascript_include_tag "application" %> 

के नीचे करने के लिए मेरी application.html.erb फ़ाइल (समापन निकाय टैग के ऊपर)

+0

' शीर्ष/आधुनिकता 'के लिए अपनी फ़ाइल ढूंढने के लिए;) – Jay

+0

अच्छा पकड़ जय। अगर किसी ने संदर्भ के लिए इसका उपयोग किया है तो मैं ठीक करने के लिए संपादित किया गया ... – Adam

+2

धन्यवाद एडम। इसके अतिरिक्त, जब मैं उत्पादन में तैनात करता हूं, तो मुझे उत्पादन.आरबी में इस कोड को config.assets.precompile + = ['top/*। Js', 'top/*। Css'] 'जोड़ने की ज़रूरत है, अन्यथा यह असफल हो जाएगी मेरे सर्वर में – Frankel

14

यह काफी आसान फिर अपने config/वातावरण/production.rb फाइल करने के लिए जा रहा है और निम्न पंक्ति

config.assets.precompile += %w(modernizr.js) 

जोड़कर पूरा किया है जब आप अपनी संपत्ति precompile आधुनिक यह स्वयं के अलग फ़ाइल है कि आप उपयोग कर सकते हैं होगा तुम्हारे सिर में।

+0

धन्यवाद। यह काम।मैंने जो करना चुना वह मेरी रूट को सीधे ऑटो लोड किया गया था, और इसमें कोई अलग फ़ोल्डर्स मैन्युअल रूप से लोड की गई फ़ाइलें हैं। तो विक्रेताओं> संपत्ति> जावास्क्रिप्ट> शीर्ष में मैंने modernizr.js डाल दिया। संपत्तियों में सब कुछ> जावास्क्रिप्ट अभी भी sprockets के साथ लोड हो जाता है। का उपयोग कर: // = requ_directory। मेरे application.js – Adam

+0

रेल में 4, इसे कॉन्फ़िगर/प्रारंभकर्ता/assets.rb फ़ाइल में नीचे जैसा ही जोड़ा जा सकता है: Rails.application.config.assets.precompile + =% w (modernizr.js) – maniempire

3

ये उत्तर पुराने हैं। बस active_admin.css.scssapp/assets/stylesheets से vendor/assets/stylesheets पर ले जाएं।

active_admin.js.coffee के साथ ऐसा करें (app/assets/javascripts से vendor/assets/javascripts पर जाएं)।

तब आपकी संपत्तियों को लोड होने पर लोड किया जाएगा, और सक्रिय_admin को समायोजित करने के लिए आपको applications.js में संशोधन करने की आवश्यकता नहीं होगी।

यह समाधान this issue में वर्णित है। उम्मीद है की यह मदद करेगा।

18

मुझे एहसास है कि यह एक पुराना सवाल है, लेकिन Google ने मुझे पिछले सप्ताह यहां भेजा है, इसलिए यह एक अप्रचलित प्रश्न नहीं है। मुझे कहीं और जवाब मिला the "stub" directive for sprockets था। तो

//= require-tree . 
//= stub Modernizr 

यह कुछ आधुनिक बंडल संपत्तियों से Modernizr.js को रखता है। इसे अपने स्वयं के टैग, ला ला मूल उत्तर के साथ शामिल किया जा सकता है।

स्प्राकेट्स चेंजलॉग का कहना है कि "स्टब" जनवरी 2012 में जोड़ा गया था, इसलिए यह तब उपलब्ध नहीं होता जब इस प्रश्न का पहले उत्तर दिया गया था, लेकिन मुझे लगता है कि यह अब एक अच्छा जवाब है।

+0

काम नहीं करता है ... – Alfie

+0

@Alfie 'sprockets 3.3.2' के लिए काम करता है –

+0

@mcdave Yep यह वास्तव में सहायक है। – Abhinay

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