Ich habe einen Server bekam auf localhost:8080
läuft, und meine Dateien sind wie folgt angeordnet:Kann nicht lokale Datei test.txt mit http erhalten: // localhost: 8080/test.txt
/test
server.js
chatroom.html
test.txt
Server Js:
var express = require("express");
var app = express();
app.get("/", function(request, response) {
response.sendFile(__dirname + "/chatroom.html");
});
app.listen(8080);
Also in meinem Browser, wenn ich gehe zu http://localhost:8080
ich chatroom.html
ganz gut bedient wird.
Das Problem, das ich habe:
Aber wenn ich zu http://localhost:8080/chatroom.html
gehen es zeigt mir
Und ebenso „nicht /chatroom.html bekommen kann,“ wenn ich zu http://localhost:8080/test.txt
gehen es mir zeigt, "Kann nicht bekommen/chatroom.html"
Ich verstehe nicht, was hier schief läuft, jede Hilfe wäre willkommen!
Ok, kannst du mir sagen, ob ich das verstehe? Ich hatte anscheinend falsch gedacht, dass die Eingabe von "http: // localhost: 8080/test.txt" in den Browser ähnlich wäre wie die Eingabe in 'file: ///. . ./test/test.txt', außer es wäre nur ein Pfad relativ zu 'localhost: 8080'. Wollen Sie damit sagen, dass die Eingabe von 'http: // localhost: 8080/test.txt' eine GET-Anfrage an den Server sendet, den er nicht verarbeiten kann? – digglemister
Richtig. Wenn Sie einen Webserver wie Apache oder Nginx verwenden, werden diese normalerweise so konfiguriert, dass sie statische Dateien bereitstellen und nur auf ein Backend wie PHP oder node.js zugreifen, wenn der angeforderte Pfad nicht mit einer Datei übereinstimmt. Wenn Sie jedoch eine Verbindung zu Port 8080 herstellen, gelangen Sie direkt zu Node & Express, und Express weiß nur über die Pfade, über die Sie darüber berichten, und über die Middleware, die Sie registrieren. –