2015-06-02 14 views
10

Voglio compilare il file in meno nella cartella pubblica dell'applicazione expressjs.Compilare meno file in css in expressjs 4.x

dipendenze che sto usando sono

"devDependencies": { 
    "ejs": "^2.3.1", 
    "express": "^4.10.6", 
    "mysql": "^2.5.4" 
    }, 
    "dependencies": { 
    "less": "^2.5.1", 
    "less-middleware": "^2.0.1" 
    } 

contenuti nel file di styles.less

header { 
    background-image: url('../img/bg.png'); 
    height: 380px; 

    input#searchBox { 
     width: 100%; 
     height: 70px; 
    } 
} 

di file server assomiglia sotto

var express = require('express'); // call express 
var app = express(); // define our app using express 
app.use(require('less-middleware')('public')); 
// Public folder 
app.use(express.static('public')); 

Il file meno non viene modificato durante l'esecuzione sul server.

Remote Address:127.0.0.1:3000 
Request URL:http://localhost:3000/css/styles.less 
Request Method:GET 
Status Code:304 Not Modified 

Qual è l'errore qui.

struttura di directory: enter image description here

Edit:

header { 
    background-image: url('../img/bg.png'); 
    height: 380px; 
    #cloud-tag span { 
     color: #fff; 
     font-weight: 800; 
     letter-spacing: 2px; 
    } 
    #cloud-tag_word_0 { 
     font-size: 100px !important; 
    } 
} 

ho aggiunto questo css in meno del file e viene inviato al browser in stesso formato, senza essere compilato.

+0

Qual è la struttura della directory? – sheldonk

+0

aggiornato con la struttura della directory @sheldonk –

+0

Puoi includere anche la posizione del tuo codice nodejs – sheldonk

risposta

7

È necessario richiedere il file css, non il file meno, nel proprio caso http://localhost:3000/css/styles.css non http://localhost:3000/css/styles.less. Il middleware compilerà il file meno con quello richiesto.

+0

dice non può ottenere /css/styles.css –

+1

ho preso il tuo codice espresso 'var express = require ('express'); // call express var app = express(); // definisce la nostra app usando express app.use (require ('less-middleware') ('public')); // Cartella pubblica app.use (express.static ('public')); app.listen (3000); ' Successivamente ho creato una directory public/css, in cui ho messo style.less, ora quando ho interrogato' http: // localhost: 3000/css/styles.css' ottengo il css compilato ... –

3

Sembra che il modo in cui si avvia il middleware per esprimere possa essere il problema. Usa "__dirname + '/ public'" per indicare la cartella.

+0

provato anche questo .... non funziona –