2012-07-05 15 views
5

इस post (अनुशंसित पढ़ने) को पढ़ने के बाद एचटीएमएल 5Shiv का उपयोग स्रोत से सीधे (लगभग) हर किसी के द्वारा नहीं करने के बाद, मैं html5shiv.js को शामिल करने की कोशिश कर रहा हूं रेल ऐप एसेट पाइपलाइन का उपयोग कर मेरा ऐप।रेल 3.2 एसेट पाइपलाइन + html5shiv.JS विक्रेताओं/संपत्तियों/जावास्क्रिप्ट

मैंने जावास्क्रिप्ट के minified और min-minified संस्करण दोनों को डाउनलोड किया। सम्मेलन आपको विक्रेताओं/संपत्ति फ़ोल्डर में तृतीय-पक्ष फ़ाइलों को जोड़ने के लिए कहता है। मेरे पास अब दो प्रश्न हैं:

1) कौन सा संस्करण (minified या min-minified) मुझे विक्रेता/संपत्ति/javascrip फ़ोल्डर में जोड़ना चाहिए?

2) चूंकि यह एक सशर्त संदर्भ <!--[if lt IE 9]> है, तो मुझे स्क्रिप्ट को कैसे कॉल करना चाहिए?

मैं इसे application.js मैनिफेस्ट में जोड़ना नहीं चाहता, क्योंकि मैं इसे एक अलग फ़ाइल के रूप में रखना चाहता हूं और मैं इस स्थिति का उपयोग करना चाहता हूं। मैं खो गया हूँ!

किसी भी मदद की बहुत सराहना की जाएगी।

धन्यवाद

उत्तर

8

आप यदि चाहें तो जे एस के unminified संस्करण का उपयोग कर सकते हैं, रेल पाइप लाइन के माध्यम उत्पादन मोड में सेक होगा।

शिव को एक अलग फ़ाइल के रूप में रखने के लिए आप इसे html5.js (या जो कुछ भी) /vendor/assets/javascripts/ निर्देशिका में बनाकर अपना स्वयं का प्रकट कर सकते हैं। उस फ़ाइल में html5shiv की आवश्यकता है (मुझे लगता है कि मैनिफेस्ट और स्क्रिप्ट एक ही डीआईआर में हैं)।

//= require html5shiv 

या

//= require html5shiv.min 

और फिर सशर्त ब्लॉक में अपने लेआउट में प्रकट शामिल हैं। एचएएमएल में कुछ:

== "<!--[if lt IE 9]>" 
= javascript_include_tag 'html5' 
== "<![endif]-->" 

परीक्षण से पहले अपने ऐप सर्वर को पुनरारंभ करना याद रखें।

+0

मैंने कोशिश की कि तुम क्या कहा, और HTML उत्पन्न यह है: - दोनों फ़ाइलें एक ही है सामग्री और अगर मैंने खाली = शरीर = 1 शो का उपयोग करने से एक्सेस करने का प्रयास किया। अगर मैं हटा देता हूं? Body = 1 वे ठीक दिखाए जाते हैं। लेकिन जब मैं संपत्तियों को रेक करने का प्रयास करता हूं: प्रीकंपाइल, html5shiv.js संकलित नहीं होता है और जब मैं सर्वर को उत्पादन मोड में चलाता हूं, तो मुझे एक त्रुटि मिलती है। मैं क्या खो रहा हूँ? –

+0

मुझे लगता है कि मेरी संपत्ति परोसा नहीं जा रहा था। अब सबकुछ काम करता प्रतीत होता है। आपका बहुत बहुत धन्यवाद। –

+1

'कॉन्फ़िगरेशन/वातावरण/output.rb' में अपनी प्रीकंपाइल सूची में कस्टम मैनिफ़ेस्ट जोड़ने के लिए याद रखें इसमें निर्देश हैं, लेकिन एक उदाहरण: 'config.assets.precompile + =% w [html5.js]' –

1

या आप उपयोग कर सकते हैं सीधे

/[if lt IE 9] 
    %script{ src: "http://html5shim.googlecode.com/svn/trunk/html5.js", type: "text/javascript" } 
संबंधित मुद्दे