Heim > Backend-Entwicklung > Golang > Wie gehe ich mit 404-Fehlern für Frontend-Routen in einem Go-Server um?

Wie gehe ich mit 404-Fehlern für Frontend-Routen in einem Go-Server um?

Barbara Streisand
Freigeben: 2024-12-24 14:39:15
Original
186 Leute haben es durchsucht

How to Handle 404 Errors for Frontend Routes in a Go Server?

Behandlung von 404-Fehlern für ungelöste Frontend-Routen in Go

In einem Server-Setup mit sowohl einer React-Frontend-App als auch einer Go-API, Zugriff auf ein nicht vorhandenes Frontend Route (z. B. http://localhost:8090/my_frontend_path) führt zu einem 404-Fehler. Um dieses Problem anzugehen, gibt es mehrere Ansätze, von denen einer die Verwendung einer „Catch-All“-Strategie auf dem Server ist.

„Catch-All“-Ansatz

Dies Die Methode stellt sicher, dass der Server für jeden Pfad, der nicht explizit an anderer Stelle behandelt wird, die Seite index.html zurückgibt. Da die Frontend-Anwendung mit index.html geladen wird, kann sie das Routing selbst übernehmen.

Eine einfache Implementierung in Go:

const FSPATH = "./build/"

func main() {
    fs := http.FileServer(http.Dir(FSPATH))

    http.HandleFunc("/my_api", func(w http.ResponseWriter, _ *http.Request) { w.Write([]byte("API CALL")) })
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // Return index.html if the requested file doesn't exist
        if r.URL.Path != "/" {
            fullPath := FSPATH + strings.TrimPrefix(path.Clean(r.URL.Path), "/")
            _, err := os.Stat(fullPath)
            if err != nil {
                if !os.IsNotExist(err) {
                    panic(err)
                }
                r.URL.Path = "/"
            }
        }
        fs.ServeHTTP(w, r)
    })
    http.ListenAndServe(":8090", nil)
}
Nach dem Login kopieren

Durch Überprüfung der Existenz der Datei und Zurückgreifen auf Wenn index.html nicht gefunden wird, stellt dieser Code sicher, dass der React-Router das Routing für alle Pfade übernimmt und übernimmt. Dieser Ansatz bietet eine einfache serverseitige Lösung, um alle ungelösten Routen an das Frontend umzuleiten.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit 404-Fehlern für Frontend-Routen in einem Go-Server um?. 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