5

हर कोई जानता है कि stylesheet_link_tag से लिंक को स्टाइलशीट में कैसे उपयोग करें, लेकिन मैं वास्तव में एक पृष्ठ में पूरी स्टाइलशीट शामिल करना चाहता हूं। (नहीं, यह आमतौर पर एक महान अभ्यास नहीं है, लेकिन यह इस संदर्भ में समझ में आता है।)रेल में, मैं <style> टैग के रूप में संपत्ति पाइपलाइन से स्टाइल शीट कैसे शामिल कर सकता हूं?

stylesheet_include_tag मौजूद नहीं है, और एक सहकर्मी जो रेल में बहुत बड़ा बुरा गधा है, कहता है कि वहां नहीं है एक आसान तरीका नहीं है।

प्रश्न:
यह वास्तव में संपत्ति पाइपलाइन का उपयोग करना संभव है और अभी भी एक .haml दृश्य में एक सीएसएस या JavaScript फ़ाइल (सास या CoffeeScript से संकलित!) की सामग्री को एम्बेड? कैसे?


स्पष्टता के लिए जोड़ा गया:

मैं चाहूँगा मेरी लेआउट की तरह कुछ शामिल करने के लिए सक्षम होने के लिए के लिए: यह इन पंक्तियों के साथ आउटपुट HTML उत्पन्न है

= stylesheet_link_tag "base" 
= stylesheet_embed_tag "page-specific-styles/foo" 

और:

<link rel="stylesheet" href="/base.css" /> 
<style type="text/css">.foo { color: red; }</style> 

अद्यतन

यह Haml भीतर सास उपयोग करने के लिए यदि आप set your initalizer correctly संभव है, लेकिन मैं इस संदर्भ में, जहां foo.css.sass संपत्ति पाइप लाइन में एक स्टाइलशीट है से @import "foo" नहीं कर पा रहे। ध्यान दें कि @import "compass" (माना जाता है कि आपके पास कंपास मणि है) काम करता है।

यह (haml) की तरह दिखता है:

%style 
    :sass 
    @import "foo" 

रेल कि "foo" नहीं पाया जा सकता है एक त्रुटि देता है, भले ही यह app/assets/stylesheets में देख होने का दावा (जो जहां foo.css.sass जीवन है)।

तो, यह करीब लगता है, लेकिन अभी भी काफी नहीं है।

+0

यदि मैं सही ढंग से समझता हूं तो आप वास्तविक सीएसएस को '.haml' व्यू में शामिल करना चाहते हैं। – David

+0

@ डेविड हां। मैं इसे स्पष्ट करने के लिए प्रश्न का विस्तार करूंगा। –

+0

क्या आप शायद 'content_for: head' block का उपयोग करने पर विचार नहीं करेंगे या मुझे लगता है कि आप इसे स्पष्ट रूप से' <% = stlyesheet_include_tag 'कुछ_stylesheet'%> 'के रूप में कॉल कर सकते हैं, लेकिन मेरा मतलब है कि यह '.haml' है, मुझे विश्वास है कि आप' टी एम्बेडेड रूबी टैग्स को सिर्फ '= styleheet_include_tag' कुछ_स्टाइलशीट बनाने में सक्षम है, मैं गलत हो सकता हूं। लेकिन दो विधियां हैं जिन्हें मैंने दो सुझाव दिया है। उम्मीद है कि यह मदद करता है। आपके संपादन से – David

उत्तर

0

अगर मैं आपके सवाल का सही ढंग से समझ,

आप एक सामान्य गहरे लाल रंग का दृश्य फाइल करने के लिए अपने सीएसएस कोड जोड़ सकते हैं (एक आंशिक रूप में), say styles.html.erb

और फिर आपके पृष्ठ की ओर जोड़ने के किसी भी हालत यू चाहते हैं पर , मुझे लगता है कि इसे देखने का सबसे आसान तरीका है।

चियर्स

+0

ठीक है, यह मेरे लिए भी हुआ, और यह सबसे आसान होगा, लेकिन ** केवल अगर ** मुझे अन्य सास फ़ाइलों को विस्तारित करने जैसी सास सुविधाओं का उपयोग करने की आवश्यकता नहीं है, जैसा कि मैं इसे समझता हूं। –

+0

और जहां तक ​​कोड दोबारा उपयोग किया जाता है, जाहिर है यह इसे काटने वाला नहीं है। –

2
http://blog.phusion.nl/2011/08/14/rendering-rails-3-1-assets-to-string/ से

:

YourApp::Application.assets.find_asset('api.css').source

haml में

%style 
    =raw YourApp::Application.assets.find_asset('foo.css').source 

चेतावनियां:

मेरा मानना ​​है कि इस उत्पादन में संपत्ति संकलन, सुंदर महंगा हो सकता है, जो की आवश्यकता है ।

+0

बहुत बढ़िया! और इसमें कोई संदेह नहीं है कि कुछ कैशिंग उस प्रदर्शन ओवरहेड को पूरी तरह खत्म कर सकती हैं –

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