2011-04-10 17 views
24

संशोधित करते समय स्टाइलशीट को फिर से संकलित नहीं किया जाता है। मै मैक ओएस एक्स पर नोड का नवीनतम संस्करण चला रहा हूं। मैंने स्टाइलस के साथ एक्सप्रेस को एक साथ स्थापित किया है। नवीनतम संस्करण भी।स्टाइलस और एक्सप्रेस - संशोधित

स्टाइलस मेरे । स्टाइल फ़ाइलों को फिर से संकलित नहीं कर रहा है, जब मैं उन्हें संशोधित करता हूं। मैं इसे कैसे ठीक करूं?

हो रही मेरी .styl फाइलों को फिर से संकलित का एकमात्र समाधान, अपने आवेदन शुरू करने फिर से, या एक स्पष्ट-संचय-ताज़ा कर संकलित .css फ़ाइलें ... नष्ट करने के लिए है (सीएमडी + Shift + आर) एक पुन: संकलन नहीं होता है।

यहां मेरे एप्लिकेशन कॉन्फ़िगरेशन का डंप है। यह मूल रूप से जब आप निष्पादन योग्य के साथ एक नई एक्सप्रेस आवेदन बनाने के रूप में एक ही दोनों मेरी .styl है ...

app.configure(function() 
{ 
    this.set("views", __dirname + "/views"); 
    this.set("view engine", "jade"); 

    this.use(express.bodyParser()); 
    this.use(express.methodOverride()); 
    this.use(express.static(__dirname + '/public')); 

    this.use(require("stylus").middleware({ 
     src: __dirname + "/public", 
     compress: true 
    })); 

    this.use(this.router); 
}); 

और संकलित .css फ़ाइलों [application]\public\stylesheets\

उत्तर

37

में स्थित हैं नीचे रखो static() स्टाइलस मिडलवेयर।

+0

ने स्वयं को बाहर निकाला। लेकिन आदेश महत्वपूर्ण क्यों है? – roosteronacid

+0

यह मूल्यांकन करने वाले पहले व्यक्ति पर मूल्यांकन और मिलान कर रहा है, क्योंकि .use() सिर्फ एक सरणी पर प्राप्त तर्क को जोड़ रहा है। जब कोई अनुरोध आता है, तो यह सरणी को पुन: सक्रिय करता है। (अस्वीकरण: मैंने स्रोत नहीं पढ़ा है, लेकिन मुझे आश्चर्य होगा अगर यह * नहीं * यह क्या कर रहा है)। –

+0

हाँ, यह कम या कम कैसे काम करता है, बस उपयोग का क्रम()। आदेश महत्वपूर्ण है क्योंकि इसे कुछ भी मनमाने ढंग से कार्य करने के लिए कनेक्ट नहीं किया गया है, आप डेवलपर निर्णय लेते हैं कि इसे – tjholowaychuk

3

अब बहुत देर हो सकती है, लेकिन मैंने अभी कुछ घंटों (टीजीटी) पास कर दिए हैं, और मुझे लगता है कि यह जेड या ऐसा कुछ है। server.js में इस कोड के साथ : मैं अपने आप को समझाएंगे

app.set('views', __dirname + '/views'); 
app.set('view engine', 'jade'); 
app.use(
    stylus.middleware({ 
    src: __dirname + "/assets/stylus", 
    dest: __dirname + "/assets/css", 
    debug: true, 
    compile : function(str, path) { 
     console.log('compiling'); 
     return stylus(str) 
     .set('filename', path) 
     .set('warn', true) 
     .set('compress', true); 
    } 
    }) 
); 
app.use(express.static(__dirname + '/assets')); 

और index.jade में:

link(rel="stylesheet", href="css/style.css") 

यह पूरी तरह काम करता है। समस्या तब थी जब लिंक टैग में था:

link(rel="stylesheet", href="stylesheets/style.css") 

और फिर यह बिल्कुल पुनः नहीं था।

मुझे आशा है कि इस

+0

हाहा आप भगवान सच हैं! मजाकिया फ़ोल्डर नाम बदल गया और यह काम किया! –

0

डिफ़ॉल्ट सेटिंग्स में मदद मिलेगी Express.js

app.use(require('stylus').middleware(path.join(__dirname, 'public'))); 

स्टाइलस संपीड़ित Express.js की स्थापना आप दस्तावेज़ में शैली पत्रक जोड़ना होगा, पेज लोड हो रहा है संकलित किया गया है और सीएसएस संपीड़ित करता है

app.use(require('stylus').middleware({src: path.join(__dirname, 'public'), compress: true})); 
+1

आपको अपने कोड को भी समझा जाना चाहिए। –

+0

स्टैक ओवरफ़्लो में आपका स्वागत है! हालांकि यह उत्तर शायद सही और उपयोगी है, अगर आप कुछ स्पष्टीकरण शामिल करते हैं तो इसे प्राथमिकता दी जाती है इसके साथ-साथ यह समझाने के लिए कि यह समस्या को हल करने में कैसे मदद करता है। यह भविष्य में विशेष रूप से उपयोगी हो जाता है, यदि कोई परिवर्तन (संभावित रूप से असंबंधित) है जो इसे काम करना बंद कर देता है और उपयोगकर्ताओं को यह समझने की आवश्यकता होती है कि यह एक बार कैसे काम करता है। –

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