2017-10-15 2 views
0

Hallo Ich arbeite an Knoten-Anwendung.Ich setze statische Dateien mit Express.Es funktioniert gut unter normalen Routing.Alle CSS-und JS-Dateien funktionieren ordnungsgemäß.Wenn ich dynamische einrichten Route wieDynamische Seiten unterstützt keine statischen Dateien in Express (NodeJs)

router.get('/product/:id',function(req,res,next){ 
    Product 
    .findById({_id:req.params.id},function(err,product){ 
     if (err) return next(err); 
     res.render('main/product',{ 
     product:product 
     }); 

    }); 
}); 

Obwohl die Produktseite adaequat es das Ergebnis genau angezeigt werden, aber es fängt keine CSS oder JS-Dateien, die ich auf dem öffentlichen folder.When definiere ich versuche, CSS zu öffnen ihre uRL-Datei ist http://localhost:3000/product/css/jumbotron.css Stattdessen sollte die URL

sein

Wo mache ich mich falsch ??

Antwort

1

Die URLs für Ihre CSS-Resorucen auf Ihrer Webseite sind scheinbar relative URLs. Fügen Sie der URL dieser URLs eine führende / hinzu, damit sie den Pfad von der Webseite nicht verwenden.

Ändern dieses

"css/jumbotron.ss" 

dazu:

"/css/jumbotron.ss" 

in Ihrer HTML-Seite.

Ohne die führenden / sind Ihre URLs "page-related", was bedeutet, dass der Browser den Pfad von der Seiten-URL zu Ihrer CSS-URL hinzufügt, bevor er vom Server angefordert wird. Das willst du nicht. Durch Hinzufügen von / zum Start der CSS-Referenz wird der Browser angewiesen, den Pfad der Seite zu ignorieren.

+0

Danke ... Es funktioniert :-) – Andrew

Verwandte Themen