2015-07-03 17 views
8

Ich versuche, weniger auf meinem Projekt Nodejs einzurichten, und wenn ich meine Seite vom Browser less-middleware Debug anfordern zeigen Sie mir falsche Pfad und Zielpfad. Wenn ich zum Beispiel '/public/css/index.css' von meiner Webseite frage, fügt ich '/public/css/' zum Quellpfad hinzu. Im Folgenden sind mein konfiguriert:Weniger Middleware mit Express

app.use(lessMiddleware(__dirname+'/server/less',{ 
    debug: true, 
    dest: __dirname+'/public/css', 
    once: true 
})); 

und Debug-Fenster zeigt:

pathname : /public/css/index.css 
source : D\Work\project\server\less\public\css\index.less 
destination : D\Work\project\public\css\public\css\index.css 

Auch wenn ich den Zielpfad zu beheben, ich Problem mit Quelle habe und ich nicht meine weniger Dateien in öffentliche Ordner setzen will . Gibt es eine Möglichkeit, das /public/css aus kompilierten weniger zu entfernen. Ich habe versucht, hinzuzufügen:

'preprocess.path': function(pathname, req){ 
    console.log(pathname); 
} 

aber console.log nie zeigt. Vielleicht gibt es auch eine Möglichkeit, nicht alle CSS-Dateien zu kompilieren, die Benutzer fragen und kompilieren nur diese weniger Dateien, die ich in weniger Ordner habe.
P.S. Jedes Modul, das ich verwende, ist unter "*" Version.

Antwort

1

Eigentlich einfach genug war.

app.use(lessMiddleware(__dirname+'/server/less/',{ 
    debug: true, 
    dest: __dirname, 
    force: true 
})); 

So, jetzt im Ordner /server/less wir erstellen Ordner public/css und alles in der richtigen Art und Weise zieht. Auch wenn wir den Ordner admin/css haben, funktioniert es auch. Trick war, Ordner im Ordner /server/less

4

Sie könnten versuchen, diese (Zugriff auf "/css/style.css" im Browser):

app.use(lessMiddleware({ 
    src: __dirname+"/server/less", 
    dest: __dirname+"/public/css", 
    prefix: "/css", 
    // force true recompiles on every request... not the 
    // best for production, but fine in debug while working 
    // through changes 
    force: true, 
    debug: true 
})); 
+0

zu erstellen Ich habe es ausprobiert, und es zeigt mir path.join muss eine Zeichenfolge sein, –

+0

Ich bearbeitet den Code, entfernen Sie die Leerzeichen vor/nach den Pluszeichen in beiden Fällen. Es hört sich so an, als ob Less mit path.join() hinter den Kulissen arbeitet und mit einem der resultierenden Pfade nicht zufrieden ist. –

Verwandte Themen