Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengendalikan Ralat 404 untuk Laluan Frontend dalam Pelayan Go?

Bagaimana untuk Mengendalikan Ralat 404 untuk Laluan Frontend dalam Pelayan Go?

Barbara Streisand
Lepaskan: 2024-12-24 14:39:15
asal
186 orang telah melayarinya

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

Mengendalikan Ralat 404 untuk Laluan Bahagian Hadapan Tidak Selesai dalam Go

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)
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan