Heim >Backend-Entwicklung >Golang >Warum erhalte ich beim Bereitstellen von CSS-Dateien in meiner Go-Webanwendung einen 404-Fehler?
Problem: 404-Seite beim Rendern von CSS in Go nicht gefunden
Beim Versuch, CSS-Dateien in einer Go-Webanwendung zu verwenden, kann es zu Problemen kommen ein 404-Fehler, der darauf hinweist, dass die CSS-Datei nicht gefunden werden kann. Dieses Problem tritt auf, obwohl die Anweisungen in der bereitgestellten Dokumentation befolgt wurden.
Relevante Verzeichnisstruktur und Code:
Die relevante Verzeichnisstruktur ist wie folgt:
src/ |__ css/somefilename.css |__ server/server.go
Der Code in server.go enthält:
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))
In der HTML-Vorlage src/templates/layout.html, die CSS-Datei wird wie folgt referenziert:
<link rel="stylesheet" type="text/css" href="../css/css490.css" />
Quelle des Problems und Lösung:
Der Fehler tritt aufgrund des angegebenen Pfads auf zum FileServer-Verzeichnis ist kein absoluter Pfad. Relative Pfade in Go werden in das Arbeitsverzeichnis aufgelöst, aus dem die Anwendung ausgeführt wird.
Um das Problem zu beheben, können Benutzer sicherstellen, dass die Anwendung aus dem richtigen Arbeitsverzeichnis ausgeführt wird, das normalerweise im Befehlszeilenargument angegeben wird, wenn das Programm ausführen. Alternativ kann der absolute Pfad zum CSS-Verzeichnis explizit in der FileServer-Funktion angegeben werden.
Wenn das Arbeitsverzeichnis beispielsweise src ist, wird der Pfad durch Ausführen von go run server/server.go korrekt aufgelöst und die Auf die CSS-Datei kann unter localhost:8080/css/ zugegriffen werden. Das Ausführen von go run server.go aus dem Ordner src/server führt jedoch zu einem 404-Fehler. Um dies im Browser zu beheben, können Benutzer den Code so ändern, dass er den absoluten Pfad verwendet:
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("/src/css"))))
Durch Angabe des vollständigen Pfads zum CSS-Verzeichnis kann das Programm die CSS-Datei unabhängig vom Arbeitsverzeichnis finden von dem aus es ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Bereitstellen von CSS-Dateien in meiner Go-Webanwendung einen 404-Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!