2013-03-28 28 views
8

के साथ संकलित नहीं कर रहा है मैं एक्सप्रेस के साथ काम करने के लिए नोड-सास प्राप्त करने की कोशिश कर रहा हूं, और मैं बस इसे संकलित करने के लिए नहीं मिल सकता। मैं public/sass और public/stylesheets, फिर भी कोई बात नहीं क्या .scss फ़ाइलें मैं सास निर्देशिका कुछ भी नहीं में जगह संकलित किया जा रहा है हैनोड-एसएएस नोड/एक्सप्रेस

var express = require('express') 
    , sass = require('node-sass') 
    , routes = require('./routes') 
    , user = require('./routes/user') 
    , http = require('http') 
    , path = require('path'); 

var app = express(); 

app.configure(function(){ 
    app.set('port', process.env.PORT || 3000); 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'ejs'); 
    app.use(sass.middleware({ 
    src: __dirname + '/public/sass', 
    dest: __dirname + '/public/stylesheets', 
    debug: true 
    })); 
    app.use(express.favicon()); 
    app.use(express.logger('dev')); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(express.cookieParser('your secret here')); 
    app.use(express.session()); 
    app.use(app.router); 
    app.use(express.static(path.join(__dirname, 'public'))); 
}); 

app.configure('development', function(){ 
    app.use(express.errorHandler()); 
}); 

app.get('/', routes.index); 
app.get('/users', user.list); 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log("Express server listening on port " + app.get('port')); 
}); 

: यह मेरा app.js फ़ाइल है। क्या कुछ और है जो मुझे node app.js से आगे चलाने की आवश्यकता है?

मैं वास्तव में छोड़ने के करीब हूं और बस सैस मणि स्थापित करता हूं और निर्देशिका देखने के लिए एक अतिरिक्त टैब खोलता हूं।

उत्तर

8

यह स्टाइलस मिडलवेयर के रूप में भ्रमित है (जिसके द्वारा यह प्रेरित है, यह कहता है)।

src की फ़ोल्डर संरचना गंतव्य और पथ आप सीएसएस फ़ाइल अनुरोध करने के लिए उपयोग कर रहे हैं की अंतिम संरचना की नकल करना चाहिए। यदि आप चाहते हैं अपने सीएसएस फ़ाइलें इस तरह संग्रहीत करने के लिए:

./public/stylesheets/app.css 

और फ़ाइल तक पहुँचने का URL होगा:

:

http://.../stylesheets/app.css 

आप इस तरह मिडलवेयर विन्यस्त करने की जरूरत

app.use(sass.middleware({ 
    src: __dirname + '/public/sass', 
    dest: __dirname + '/public', 
    debug: true 
})); 

और आपकी एसएएसएस फ़ोल्डर संरचना इस तरह:

./public/sass/stylesheets/app.scss 

मेरा मानना ​​है कि यह इस तरह काम करता है:, /stylesheets/app.css

  • एससीएसएस फ़ाइल खोजने के लिए src लिए URL पथ को श्रेणीबद्ध और विस्तार की जगह:

    • HTTP अनुरोध के रास्ते ले ./public/sass/stylesheets/app.scss
    • गंतव्य के लिए, URL पथ को dest: ./public/stylesheets/app.css
  • +0

    समझ में आता है कि, लेकिन दुर्भाग्य से यह अभी भी काम नहीं करता। एससीएसएस फाइलें अभी भी संकलित नहीं होतीं। – bjork24

    +0

    मैं * लगभग * आपका कोड ([gist] (https://gist.github.com/robertklep/5264130) का उपयोग कर रहा हूं) और यह ठीक काम करता है (एससीएसएस फ़ाइल बदलते समय पुनः प्रतिपादन सहित)। शायद एक अनुमति समस्या है? – robertklep

    +0

    यह वास्तव में अजीब है। मेरे पास एक ही सेटअप और निर्देशिका संरचना है, लेकिन यह मेरे लिए काम नहीं कर रहा है। ओह अच्छा। मैं बस अपने कंपास मणि का उपयोग जारी रखूंगा। – bjork24

    1

    मुझे si मिलर मुद्दों को नोड-एसएएस मिडलवेयर काम कर रहा है। मैंने अंततः asset-rack को छोड़ दिया और जब तक मैंने इस कांटे का उपयोग शुरू नहीं किया, तब तक मैं काम करने में असमर्थ था: https://github.com/techpines/asset-rack/pull/76

    निराश है कि संपत्ति-रैक कांटा के लिए पुल अनुरोध 11 महीने तक बैठे थे, मैंने बस लेखन समाप्त कर दिया मेरी अपनी स्थिर फ़ाइल मिडलवेयर Electricity कहलाती है जो सुविधाओं के लिए कुछ अन्य अच्छे लोगों के बीच सास का समर्थन करती है।

    +1

    अरे भयानक पुस्तकालय! –

    1

    उपसर्ग विकल्प का उपयोग करने का प्रयास करें:

    app.use(sass.middleware({ 
        src: __dirname + '/public/sass', 
        dest: __dirname + '/public', 
        prefix: '/stylesheets' 
        debug: true 
    })); 
    

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

    • कोई संबंधित समस्या नहीं^_^