Apabila mengakses laluan seperti "/my_frontend_path" terus dalam penyemak imbas, GoLang mengembalikan ralat 404 mewakilkan penghalaan ke bahagian hadapan React penghala.
Isu utama ialah apabila mengakses laluan sedemikian sebelum penghala React dimulakan, pelayan mengendalikan permintaan dan mengembalikan ralat.
Pendekatan "Catch-all" bahagian pelayan yang mudah boleh dilaksanakan untuk mengubah hala semua laluan yang tidak disokong ke penghala bahagian hadapan. Pendekatan ini berfungsi dengan mengembalikan halaman index.html jika fail yang diminta tidak wujud, membenarkan penghala React mengendalikan penghalaan.
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) { // If requested file exists, return it; otherwise, return index.html 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) } // Requested file does not exist, return index.html r.URL.Path = "/" } } fs.ServeHTTP(w, r) }) http.ListenAndServe(":8090", nil) }
Dalam pelaksanaan ini:
Kaedah ini mengembalikan index.html untuk fail yang tidak wujud, yang boleh menyebabkan masalah dengan fail seperti "favicon.ico". Dalam kes sedemikian, semakan tambahan boleh ditambah untuk mengehadkan ubah hala hanya kepada sambungan tertentu.
Atas ialah kandungan terperinci Bagaimana untuk mengubah hala Laluan Frontend dalam GoLang untuk Mengelakkan Ralat 404?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!