2008-09-17 5 views
19

यदि आप अपने रेल एप्लिकेशन में HAML और SASS का उपयोग कर रहे हैं, तो आपके द्वारा सार्वजनिक/स्टाइलशीट/*। एसएएस में परिभाषित किए गए किसी भी टेम्पलेट को * .css स्टाइलशीट में संकलित किया जाएगा। अपने कोड से, आप एक्सटेंशन के बारे में चिंता किए बिना नाम में संपत्ति खींचने के लिए styleheet_link_tag का उपयोग करते हैं।अपने एप्लिकेशन और स्रोत नियंत्रण में SASS जेनरेट किए गए सीएसएस को संग्रहीत करने के लिए सबसे अच्छी विधि क्या है?

कई लोग जेनरेट कोड या संस्करण नियंत्रण में संकलित कोड संग्रहीत करने से नापसंद करते हैं, और यह भी कारण है कि सार्वजनिक/निर्देशिका में उन तत्वों को शामिल नहीं होना चाहिए जिन्हें आप ब्राउज़र पर नहीं भेजते हैं।

अपने रेल परियोजना में SASS संसाधनों को डालने के दौरान पालन करने का सबसे अच्छा तरीका क्या है?

उत्तर

11

मैं हमेशा में "सार्वजनिक/स्टाइलशीट/सास/* सास।" सभी शैली और संकलित लोगों के लिए एक को बाहर फ़िल्टर सेटअप संस्करण:

/public/stylesheets/*.css 
0

यदि मैं इसे प्रबंधित कर सकता हूं, तो मैं एक परियोजना के लिए HAML/SASS चुनते समय SASS टेम्पलेट्स में अपनी सभी शैलियों को स्टोर करना चाहता हूं, और मैं application.css और scaffold.css को हटा दूंगा। फिर मैं SASS को सार्वजनिक/स्टाइलशीट/एसएएस में रखूंगा, और /gublic/stylesheets/*.css को .gitignore में जोड़ दूंगा।

यदि मुझे एसएएसएस और सीएसएस आधारित परिसंपत्तियों के संयोजन के साथ काम करना है, तो यह थोड़ा और जटिल है। इसे संभालने का सबसे आसान तरीका स्टाइलशीट निर्देशिका में जेनरेट किए गए सीएसएस के लिए आउटपुट उपनिर्देशिका है, फिर उस उपनिर्देशिका को .gitignore में बहिष्कृत करें। फिर, आपके विचारों में आपको यह जानना होगा कि आप किस स्टाइलिंग प्रकार का उपयोग कर रहे हैं (SASS या CSS) सार्वजनिक/स्टाइलशीट/foo स्टाइलशीट या सार्वजनिक/स्टाइलशीट/सैस-आउट/foo स्टाइलशीट का चयन करने के कारण।

यदि आपको दूसरा मार्ग जाना है, तो सैस-आउट उपनिर्देशिका को दूर करने के लिए एक सहायक बनाएं।

6

ईमानदारी से, मैं संस्करण नियंत्रण में मेरी संकलित एस.ए.एस.एस. स्टाइलशीट होने पसंद । वे छोटे होते हैं, केवल तभी बदलते हैं जब आपकी .sass फ़ाइलें बदलती हैं, और उन्हें आपके शेष ऐप के साथ तैनात करने का मतलब है कि SASS कंपाइलर को कभी भी उत्पादन में आग लगने की आवश्यकता नहीं है।

अन्य लाभ (हालांकि एक छोटा सा) यह है कि यदि आप पृष्ठ कैशिंग का उपयोग नहीं कर रहे हैं, तो आपकी रेल प्रक्रिया को आपके public_html निर्देशिका में लेखन पहुंच की आवश्यकता नहीं है। तो आपके सर्वर का एक शोषण बुरा हो सकता है।

5

कुछ हद तक संबंधित है, लेकिन अपने कैपिस्ट्रानो तैनाती के दौरान अपने सीएसएस को पुन: उत्पन्न करना एक अच्छा विचार है। इसके लिए कॉलबैक हुक सिर्फ इतना है कि करता है:

after "deploy:update_code" do 
    rails_env = fetch(:rails_env, "production") 
    run "#{release_path}/script/runner -e #{rails_env} 'Sass::Plugin.update_stylesheets'" 
end 

अद्यतन: यह अब Haml/सास के आधुनिक संस्करणों के साथ आवश्यक होना चाहिए।

13

compass ढांचा आपके एसएएस स्टाइलशीट को ऐप/स्टाइलशीट्स और आपके संकलित सीएसएस को सार्वजनिक/स्टाइलशीट/संकलित में डालने की सिफारिश करता है।

आप अपने environment.rb के लिए निम्न कोड जोड़कर इस कॉन्फ़िगर कर सकते हैं:

Sass::Plugin.options[:template_location] = { 
    "#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets/compiled" 
} 

आप कम्पास ढांचे का उपयोग करते हैं, तो इस विन्यास आप के लिए जब आप इसे स्थापित करता है।

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

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