2017-05-20 1 views
0

nicht rendern Ich arbeite an Angular-Anwendung, wo ich versuche, die Build-Dateien von meiner Angular-Anwendung über das Verzeichnis dist in meinem Express zu Server. Um dies zu tun, kopiere ich die Dateien von ng Build generiert und fügen Sie sie in Dist-Ordner von Express.Konnte statische Indexdatei von express

Mein dist Ordner sieht aus wie unten

Dist Folder for Express

ich den folgenden Code verwende die Datei index.html scheinen

this.app.use(express.static(__dirname + '/dist')) 

Aber zu dienen "zu bekommen Kann nicht GET/ "Fehler

In ähnlicher Weise, wenn ich tun

this.app.use(express.static(__dirname + '/public')); 

es dient die html im Öffentlichen Ordner.

Soweit mein Verständnis, können Sie statische von jedem Ordner in Express dienen. Ich bin mir nicht sicher, ob ich hier etwas verpasse.

Antwort

2

Erstellen Sie ein neues Verzeichnis ./dist/www und verschieben Sie Ihre Dateien außer server.js nach hier.

this.app.use(express.static(__dirname + '/www')); 
0

Es sieht aus wie Sie

this.app.use(express.static(__dirname + '/dist')) 

mit

this.app.use(express.static(__dirname)) 
+0

dies hat es für mich ersetzen sollen, aber ich habe eine andere Frage über nicht in der Lage zu sein, die Bundle-Dateien von Winkeln zuzugreifen wahrscheinlich Erstellen Sie einen anderen Beitrag darüber – RRP

+1

@RRP Während dies funktioniert, bedeutet es auch, dass der Code Ihres Servers jetzt öffentlich verfügbar ist - 'GET/server.js', etc. Wie in der Botika erwähnt, ist es empfehlenswert, alle statischen, Client- Seitendateien in einem eigenen Verzeichnis (z. Verschiebe 'dist/index.html' nach' dist/public/index.html') und habe 'express.static()' das Verzeichnis ('__dirname + '/ public'). –

+0

@ JonathanLonowski Weißt du, warum this.app.use (express.static (__ Verzeichnisname + '/ dist')) fehlschlägt, sollte es nicht auch alle statischen Assests unter diesem Ordner – RRP

Verwandte Themen