2017-10-18 1 views
3

Ich versuche gerade, einen Passwort-Reset-Flow mit Pug (früher bekannt als Jade) und Express einzurichten.Warum sind meine express router.get URLs mit mehreren Pfaden, die nur Text darstellen?

Aus irgendeinem Grund werden GET-Anfragen, die URLs mit mehreren Pfaden enthalten, meine MUG-Sichten-Dateien nur mit Text rendern. Es sind keine Bilder oder Stile geladen.

Zum Beispiel:

app.get('/example', (req, res) => { 
    res.render('test') 
}) 

wird die Testdatei mit Stil und Bilder perfekt machen. Jedoch:

app.get('/example/test', (req, res) => { 
    res.render('test') 
}) 

wird die Testdatei nur mit Text rendern. Bilder und Stil fehlen.

Irgendwelche Ideen, was dieses Problem verursachen könnte?

+1

Sind deine Bild-URLs wie 'images/one.jpg' usw.? Wenn ja, wenn du zu'/example/test' gehst, wird die URL '/ example/images/one.jpg' ... Versuche es zu machen Deine URLs absolut '/ images/one.jpg' usw. – Keith

+0

Haha, du hast recht gehabt. Vielen Dank! – Leafyshark

Antwort

1
  1. fügen Sie app.use(express.static(__dirname+"/public")); in Ihrem server.js hinzu.
  2. Erstellen Sie einen neuen Ordner mit der Bezeichnung public auf Ihrem workspace, wo Ihre server.js existiert.
  3. Jetzt erstellen styles und images Ordner innerhalb public und legen Sie Ihre CSS-Dateien und Bilder Dateien in jedem Ordner.
  4. ändern Sie Ihren Pfad von css auf test.html zu /styles/test.css zum Beispiel. Du solltest es jetzt funktionieren lassen.

Die statische Methode definiert in express wird als absolute Stammpfad für public Ordner schauen und jetzt egal, wie viele Schichten von Route ruft Sie erhalten Sie Ihre styles und images Ordner ohne die Notwendigkeit verfolgen sichern Zugriff auf die relativer Pfad Ihrer css/images Dateien.

Verwandte Themen