2011-06-07 17 views
23

पर पारित नहीं किया जा रहा है मूल रूप से मेरे पास एक संरचना है जो 3.0.x में पूरी तरह से काम करने के लिए उपयोग की जाती है और अब यह undefined variable त्रुटियों के साथ टूट जाती है।SASS वैश्विक चर आंशिक

  • partials
    • _header.css.sass
  • main.css.sass
  • application.css.sass

_base.css.sass application.css.sass:

//=require 'main' 

main.css.sass:

@import 'partials/base' 
@import 'partials/header' 

सुंदर सरल सामान।

मैं क्योंकि यह एक चर _base.css.sass

पर परिभाषित मैं इस त्रुटि से पहले नहीं था का उपयोग करता _header.css.sass पर कोई त्रुटि मिलती है, और यह मेरे लिए कोई मतलब नहीं है क्योंकि हम _base.css.sass पर वे चर आयात कर रहे हैं उसी संदर्भ में हम _header.css.sass आयात कर रहे हैं।

क्या मुझे प्रत्येक आंशिक पर _base.css.sass आयात करना होगा? main.css.sass का बिंदु क्या है जो वैश्विक चर की आवश्यकता है यदि उन्हें अपने स्वयं के आंशिक हिस्सों में उपयोग नहीं किया जा सकता है?

यदि मेरी संरचना पूरी तरह गलत है, तो कृपया मुझे एक विकल्प दें, मुझे सुझाव पसंद आएंगे।

+0

"config.assets.precompile" तुम्हारा दोस्त है :-) [बस एक नज़र यहाँ जो वास्तव में मुझे मदद मिली है !!!] [1] [1]: http: // stackoverflow .com/प्रश्न/7134034/उपयोग-रेल-3-1-परिसंपत्तियों-पाइपलाइन-से-सशर्त रूप से उपयोग-निश्चित-सीएसएस –

उत्तर

25

आप //=require का उपयोग नहीं कर सकते हैं ताकि "गतिशील" एसएएसएस सामान जैसे मिश्रित और चर शामिल हो सकें, क्योंकि इसका उपयोग केवल "स्थैतिक" सामान (शुद्ध सीएसएस जैसे) के लिए किया जाता है। आपको @importapplication.css.sass में अपनी सभी फाइलें हैं। Railscasts episode #268 में इसकी अच्छी व्याख्या प्रदान करता है।

1

स्पष्ट रूप से आपको application.css.sass को मैनिफेस्ट के रूप में उपयोग करना है, या कुछ भी काम नहीं करेगा।

मूल रूप से आप सबकुछ अलग कर सकते हैं लेकिन उन्हें एप्लिकेशन फ़ाइल से कॉल करने की आवश्यकता है क्योंकि स्कॉप्स साझा नहीं किए जाते हैं।

लिटिल बिट भी लागू करने अगर आप मुझसे पूछें ...

+1

क्या आप कृपया "क्या आपको ... एक अभिव्यक्ति के रूप में उपयोग करना है" के बारे में विस्तार से बता सकते हैं? मैं अपनी मुख्य फ़ाइल के रूप में 'application.css.sass' का उपयोग कर रहा हूं, जहां मैं अपनी सभी अन्य फाइलों को आयात करता हूं, लेकिन मैं अभी भी ऊपर वर्णित वही समस्या में भाग लेता हूं। – Marc

+0

आप एक .sass का उपयोग कर रहे हैं जहां फ़ाइल नाम है। एससीएसएस – raulriera

+0

धन्यवाद, यह एक टाइपो @raulriera – Draiken

0

यह एक सास फ़ाइल है। के बजाय में @import का उपयोग करें। require सादा सीएसएस या टेम्पलेट इंजन के लिए है जिसमें आयात प्रणाली नहीं है।

2

मूल विषय के लिए एक आसान समाधान है। आपका आवेदन और मुख्य सीएसएस फ़ाइलें स्कैस फाइलें होनी चाहिए। इसका मतलब है कि आप ज्ञात वाक्यविन्यास का उपयोग कर सकते हैं:

/* 
*= require_self 
*= require main 
*/ 

मुख्य में।एससीएसएस आप इस तरह आंशिक आयात कर सकते हैं:

@import 'partials/base' 
@import 'partials/header' 

इन फ़ाइलों को सास फ़ाइलें हैं और आप एस.ए.एस.एस. ;-)

2

की महानता से लाभ उठा सकते मुझे लगता है कि मैं एक ही समस्या थी और क्या मदद की घोषणा कर रहा था @imports से पहले चर। उम्मीद है कि यह किसी की मदद करता है =)।

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