2016-07-24 14 views
0

Ich versuche, meine erste Knoten-App zu bauen und habe Probleme mit der Javascript-Datei, aber nicht meine CSS, so dass ich sehr verwirrt bin. Hier ist meine app.js:Knoten statische js Datei ist nicht erfrischend

var express = require("express"); 
var app = express(); 
app.set("view engine", "ejs"); 
app.use(express.static(__dirname + '/public')); 

Ich konnte nicht meine js-Datei laden, bis ich Zeile 4 hinzugefügt, wo ich in der Chromkonsole sah „verbunden“, die aus meiner js Datei war. Das Problem, das ich habe, ist, dass, seit ich Zeile 4, express.static hinzugefügt habe meine js-Datei nicht geändert hat und alles, was ich in der Datei hinzugefügt habe, wird nicht in der Registerkarte Chrom-Ressourcen angezeigt. Seltsamerweise funktioniert meine CSS-Datei korrekt, also bin ich etwas ratlos.

ich in die js Datei verknüpfen versuche wie:

<script src="javascripts/main.js"></script> 

bin ich nicht wirklich sicher, warum es nicht richtig funktioniert, habe ich versucht, den Server neu zu starten, und da installierte nodemon haben, die entweder nicht funktioniert hat. meine Ordnerstruktur ist

app.js 
public 
    stylesheets 
     main.css 
    javascripts 
     main.js 

Ich habe das Problem sah auf und haben festgestellt, nur die Menschen nicht auf statische Dateien verbinden, nicht einmal angeschlossen sie zeigen keine Änderungen

gespeichert
+0

können Sie versuchen, mit ? – Alburkerk

Antwort

2

Ich denke, Sie müssen Cache in Ihrem Browser deaktivieren. Weil der Browser denkt, dass die Datei nicht zu alt ist, um vom Server aktualisiert zu werden und die zwischengespeicherte Datei zu verwenden.
Für Chrome - Konsole von F12 öffnen (auch in anderen Browser funktioniert) und überprüfen Sie es.

enter image description here

+0

Hallo Aikon, ich überprüfte die Netzwerk-Registerkarte und es war bereits deaktiviert – jSutcliffe90

+0

Sie müssen es überprüfen. Es wird verweigert, den lokalen Cache zum Browser zu verwenden. –

+0

Es funktioniert immer noch nicht – jSutcliffe90

0

Versuchen Sie einen absoluten Pfad verwenden, um sicherzustellen, statische Assets werden ordnungsgemäß geladen. Die Verwendung relativer Pfade (z. B. javascripts/main.js) kann problematisch sein, da der Browser sie in absolute Pfade konvertiert (dies berücksichtigt die vollständige URL einschließlich verschachtelter Routen).

Wenn Sie beispielsweise eine Route /foo/bar eingerichtet haben und relative Pfade verwenden, wird der Browser versuchen, in Ihrem Browser /foo/bar aufzurufen, auf /foo/bar/javascripts/main.js zuzugreifen.

+0

Danke für die Hilfe, ich habe 'src =" ./ javascripts/main.js "' und auch 'src ="/javascripts/main.js "' versucht, aber ich sehe immernoch nur "verbunden" und nicht den Rest der Js-Datei – jSutcliffe90

0

Das Problem, das Sie bereits konfrontiert wird durch die Bibliothek wie webpack beantwortet. Es wird heiß nachgeladen. Welche Änderungen Sie auch an Ihrer Webanwendung vornehmen, wird in den Client geladen, und die Dateien werden gepatcht, um die Änderungen zu aktualisieren, ohne dass der Server neu gestartet werden muss. Sie haben Skripte aktualisiert, die im Browser ausgeführt werden.

+0

Hallo Nishanth, ich habe nodemon installiert, das jetzt den Server automatisch update, aber die res meiner main.js Datei wird nicht richtig geladen – jSutcliffe90

+0

Sie müssen die Client-Dateien aktualisieren. Schauen Sie sich Bibliotheken zum Heizen an, wie zum Beispiel webpack oder hr4R. Wenn diese Bibliothek Änderungen vornimmt, sehen Sie die Änderungsprotokolle in Ihrer Browserkonsole. –

+0

Ich benutze nodemon um dies zu tun und es aktualisiert meine HTML und CSS, nur nicht meine JS-Datei – jSutcliffe90