2016-04-17 12 views
0

Ich habe verschiedene Wege in meiner app wie:Express dienen statische Dateien für mehrere Pfade regex

  • /a
  • /a/:b
  • /a/:/b/:c/:d

Für Pfade wie /a, ich benutze :

app.use(express.static(path.join(__dirname, 'public'))); 

Für Pfade wie /a/:b, füge ich eine andere wie folgt aus:

app.use('/a', express.static(path.join(__dirname, 'public'))); 

Statt express.static für jeden Pfad hinzuzufügen, gibt es eine Möglichkeit, dies mit einer einzigen Code-Zeile zu erreichen, möglicherweise durch regex. Etwas wie:

app.use(/\/[a-z]*/, express.static(path.join(__dirname, 'public'))); 
// BTW, this doesn't work 

Was für eine gute Praxis wäre statische Dateien für mehrere Pfade zu dienen? Vielen Dank.

+0

, warum Sie nicht nur speichern Sie Ihre statischen Dateien in einem Ordner mit Unterordner a/b/c/was auch immer? – smnbbrv

+1

Wenn Ihre Dateispeicher-Festplattenhierarchie mit der URL-Pfadhierarchie übereinstimmt, können Sie alle Dateien in einer Festplattenhierarchie ablegen und nur einen 'express.static()' -Aufruf für alles verwenden, indem Sie nur die oberste Ebene angeben. 'express.static()' macht mehrere Ebenen für Sie. – jfriend00

+0

@ jfriend00 Ja, es wird durch Hinzufügen eines Schrägstrichs auf statischen Links gelöst. – dragfire

Antwort

0

können Sie leiten Schrägstrich hinzuzufügen:

app.all(/\/[a-z]*/, function(req, res) { 
    res.redirect('/static/'); 
}); 
app.use('/static/', express.static(__dirname + '/public')); 
Verwandte Themen