Heim > Backend-Entwicklung > Golang > Wie behebe ich 404-Fehler bei der Bereitstellung statischer Inhalte mit PathPrefix von Gorilla Mux?

Wie behebe ich 404-Fehler bei der Bereitstellung statischer Inhalte mit PathPrefix von Gorilla Mux?

Susan Sarandon
Freigeben: 2024-12-08 01:18:13
Original
350 Leute haben es durchsucht

How to Fix 404 Errors When Serving Static Content with Gorilla Mux's PathPrefix?

Adressierung von 404-Fehlern bei der Bereitstellung statischer Inhalte mit Gorilla Mux

Bei der Implementierung von URL-Routing mithilfe des Mux-Pakets des Gorilla Toolkits tritt eine häufige Herausforderung auf, wenn statische Inhalte aus Unterverzeichnissen bereitgestellt werden. In diesem Artikel untersuchen wir eine Lösung für dieses Problem durch die Verwendung der PathPrefix-Methode und wie sie die 404-Fehler beheben kann, die beim Zugriff auf statische Dateien auftreten.

Problemstellung

Stellen Sie sich das folgende Szenario vor : Sie haben einen Go-Webserver mit der folgenden Datei- und Verzeichnisstruktur:

...
main.go
static\
  | index.html
  | js\
     | <js files>
  | css\
     | <css files>
Nach dem Login kopieren

In Ihrer main.go-Datei haben Sie einen Mux-Router definiert als folgt:

func main() {
    r := mux.NewRouter()
    r.Handle("/", http.FileServer(http.Dir("./static/")))
    r.HandleFunc("/search/{searchTerm}", Search)
    r.HandleFunc("/load/{dataId}", Load)
    http.ListenAndServe(":8100", nil)
}
Nach dem Login kopieren

Wenn Sie in Ihrem Browser auf http://localhost:8100 zugreifen, wird index.html erfolgreich gerendert. Versuche, auf CSS- und JavaScript-Dateien in Unterverzeichnissen zuzugreifen, führen jedoch zu 404-Fehlern.

Lösung mit PathPrefix

Um dieses Problem zu beheben, verwenden wir die vom Mux-Paket bereitgestellte PathPrefix-Methode. Mithilfe dieser Methode können wir ein Pfadpräfix angeben, das allen statischen Dateien gemeinsam ist, und dann einen Handler für dieses Pfadpräfix zuweisen.

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/search/{searchTerm}", Search)
    r.HandleFunc("/load/{dataId}", Load)
    r.PathPrefix("/").Handler(http.FileServer(http.Dir("./static/")))
    http.ListenAndServe(":8100", r)
}
Nach dem Login kopieren

Durch die Verwendung von PathPrefix("/").Handler, Wir sagen im Wesentlichen, dass wir uns für jeden Pfad, der mit „/“ beginnt, an den FileServer-Handler wenden sollten. Dadurch wird sichergestellt, dass alle statischen Dateien im Verzeichnis static/ korrekt bereitgestellt werden, einschließlich derjenigen in Unterverzeichnissen wie css/ und js/.

Das obige ist der detaillierte Inhalt vonWie behebe ich 404-Fehler bei der Bereitstellung statischer Inhalte mit PathPrefix von Gorilla Mux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage