Dalam persediaan pelayan dengan kedua-dua apl bahagian hadapan React dan API Go, mengakses bahagian hadapan yang tidak wujud laluan (cth., http://localhost:8090/my_frontend_path) menghasilkan ralat 404. Untuk menangani perkara ini, terdapat beberapa pendekatan, salah satunya adalah menggunakan strategi "catch-all" pada pelayan.
Pendekatan "Catch-All"
Ini kaedah memastikan bahawa untuk mana-mana laluan yang tidak dikendalikan secara eksplisit di tempat lain, pelayan mengembalikan halaman index.html. Memandangkan aplikasi bahagian hadapan dimuatkan dengan index.html, ia kemudiannya boleh mengendalikan penghalaan itu sendiri.
Pelaksanaan mudah dalam 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) }
Dengan menyemak kewujudan fail dan kembali ke index.html jika ia tidak ditemui, kod ini memastikan penghala React mengambil alih dan mengendalikan penghalaan untuk semua laluan. Pendekatan ini menyediakan penyelesaian bahagian pelayan yang mudah untuk mengubah hala mana-mana laluan yang belum diselesaikan ke bahagian hadapan.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat 404 untuk Laluan Frontend dalam Pelayan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!