2011-10-12 28 views
6

मैं अपनी application.css फ़ाइल को एक sass फ़ाइल में बदलना चाहता हूं और सभी आवश्यक फ़ाइलों को खींचने के लिए @import का उपयोग करना चाहता हूं। फिर मैं पेज विशिष्ट एसएएस फाइलों में application.css.sass को आयात करना चाहता हूं। यह सब विकास में खूबसूरती से काम करता है, लेकिन जब मैं Heroku पर उत्पादन env को धक्का मैं इस त्रुटि मिलती है:क्या आवेदन.css को application.css.sass में बदलना संभव है?

Error compiling CSS asset 
Sass::SyntaxError: File to import not found or unreadable: application 

application.css.sass:

@import "reset" 
@import "typography" 
@import "buttons" 
@import "junk" 

$yellow: #f0f090 
$orange: #f89818 
$blue1: #184898 
$blue2: #4888c8 

body 
background: ... 
... 
/* all the rest of the app-wide styling */ 

uniquePage.css.sass :

@import "application" 
/*page specific styling*/ 
तब पृष्ठों सामान अलग की जरूरत है कि application.css से मैं फोनपर
!!! 5 
%html 
    %header  
    = stylesheet_link_tag "uniquePage" 

उत्तर

3

Then I guess the question becomes, how do I make different manifest files for different css sets?

टी के कई तरीके हैं ओ ऐसा करते हैं:

1. पेज शीट

यह तुम अब क्या कर रहे हैं, लेकिन मैं दोनों आवेदन और अद्वितीय पेज में @imports का उपयोग कर कुछ अलग ढंग से चादरों का आयोजन होता है, प्रति। (अद्वितीय पृष्ठ में आवेदन आयात करने की बजाय)। सिर्फ उन पृष्ठों

के लिए एक दूसरे चादर

2. उपयोग तुम बस उस पृष्ठ के लिए परिवर्तन के साथ एक दूसरे चादर हो सकता है। सभी पृष्ठों में एप्लिकेशन शीट होती है, और केवल एक आवश्यक टैग के साथ अद्वितीय पृष्ठ पर दूसरा टैग जोड़ा जाता है। यह आपको एक अतिरिक्त http अनुरोध का खर्च लेता है।

3. अपने सीएसएस

जब तक अतिरिक्त सीएसएस पर्याप्त है, तो आप से बेहतर हो सकता है रिफैक्टरिंग आपका मुख्य फ़ाइल में शामिल करने के लिए कोड को पुनर्संगठित करें। अद्वितीय पृष्ठ के बॉडी टैग में अतिरिक्त श्रेणी जोड़ना और पृष्ठ का उपयोग करने के लिए किसी भी सीएसएस को समायोजित करना आसान है।

आप अभी भी उस पृष्ठ को अद्वितीय पृष्ठ (रखरखाव में सहायता के लिए) में डाल सकते हैं, और इसे अपनी मुख्य फ़ाइल में भेज दें।

एक सामान्य नियम है, जब तक सीएसएस परिवर्तन पर्याप्त हैं, मैं उन्हें मुख्य सीएसएस में विलय करने की कोशिश करेगा अन्यथा विकल्प 1.

5

रेल 3.1 में, application.css का उपयोग एक मैनिफेस्ट फ़ाइल के रूप में किया जाना है। आपको इसका नाम बदलना नहीं चाहिए, न ही आपको इसके अंदर सामग्री डालना चाहिए या निर्देशों को शामिल करना चाहिए।

अपने उद्देश्य के लिए एक अलग फ़ाइल नाम का उपयोग करें।

यह भी ध्यान दें कि SCSS @import syntax यह आंशिक उपयोग करने जैसा है। यदि आप @import application आयात करना चाहते हैं तो फ़ाइल को _application कहा जाना चाहिए, application नहीं।

+0

तो मुझे लगता है कि प्रश्न बन जाता है, के लिए जाने कैसे मैं अलग प्रकट फ़ाइलों कर सकता हूँ के रूप में विभिन्न सीएसएस सेट के लिए? –

5

आप application.scss को :)

इन दो Railscasts जाँच कृपया यह बदलना चाहिए:

http://railscasts.com/episodes/279-understanding-the-asset-pipeline

http://railscasts.com/episodes/282-upgrading-to-rails-3-1

सिमोन के सुझावों पर +1

+1

इसे मेरे लिए तय किया गया। एक परेशान छोटी समस्या! –

+0

ने भी मेरे लिए इसे ठीक किया। कौन जानता होगा? – Arcolye

+0

मुझसे एक और +1। मुझे आयात के साथ परेशान बचाया :) –

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