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
Barbara StreisandOriginal
2024-12-24 14:39:15196Durchsuche

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)
}

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!

Stellungnahme:
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