2015-06-02 10 views
10

Ich möchte die weniger Datei im Öffentlichen Ordner von Expressjs Anwendung kompilieren.kompilieren weniger Datei zu Css in Expressjs 4.x

Abhängigkeiten, die ich verwende sind

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

Inhalt in styles.less Datei

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

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

Server-Datei wie

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')); 

Je weniger Datei geändert unten sieht nicht beim Laufen es auf dem Server.

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

Was ist der Fehler hier.

Verzeichnisstruktur: 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; 
    } 
} 

Ich habe diese CSS in weniger Datei und es Browser wird ohne kompilierte in demselben Format gesendet.

+0

Wie ist Ihre Verzeichnisstruktur? – sheldonk

+0

aktualisiert mit der Struktur des Verzeichnisses @sheldonk –

+0

Können Sie auch die Position Ihres Nodejs-Code enthalten – sheldonk

Antwort

7

Sie müssen die CSS-Datei anfordern, nicht weniger Datei in Ihrem Fall http://localhost:3000/css/styles.css nicht http://localhost:3000/css/styles.less. Die Middleware kompiliert die weniger Datei zu der von Ihnen angeforderten Datei.

+0

es sagt, kann nicht Get /css/styles.css –

+1

Ich nahm Ihren Express-Code 'var express = erfordern ('express'); // Aufruf express var app = express(); // definiere unsere App mit express app.use (require ('less-middleware') ('public')); // Öffentlicher Ordner app.use (express.static ('public')); App.listen (3000); ' Danach habe ich ein Verzeichnis public/css, in dem ich style.less, jetzt, wenn ich abfragen" http: // localhost: 3000/css/styles.css "Ich bekomme die kompilierten CSS ... –

3

Sieht aus wie die Art, wie Sie die Middleware zum Auslösen initiieren, das Problem sein könnte. Verwenden Sie "__dirname + '/ public'", um den Ordner anzugeben.

+0

versuchte dies auch .... funktioniert nicht –

Verwandte Themen