Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membetulkan Ralat 404 Semasa Menyajikan Kandungan Statik dengan PathPrefix Gorilla Mux?

Bagaimana untuk Membetulkan Ralat 404 Semasa Menyajikan Kandungan Statik dengan PathPrefix Gorilla Mux?

Susan Sarandon
Susan Sarandonasal
2024-12-08 01:18:13390semak imbas

How to Fix 404 Errors When Serving Static Content with Gorilla Mux's PathPrefix?

Mengatasi 404s Apabila Menyajikan Kandungan Statik dengan Gorilla Mux

Apabila melaksanakan penghalaan URL menggunakan pakej mux Gorilla Toolkit, cabaran biasa timbul apabila menyajikan kandungan statik daripada subdirektori. Dalam artikel ini, kami akan meneroka penyelesaian kepada isu ini dengan menggunakan kaedah PathPrefix dan cara ia boleh menyelesaikan ralat 404 yang dihadapi semasa mengakses fail statik.

Pernyataan Masalah

Pertimbangkan senario berikut : Anda mempunyai pelayan web Go dengan fail dan struktur direktori berikut:

...
main.go
static\
  | index.html
  | js\
     | <js files>
  | css\
     | <css files>

Dalam anda fail main.go, anda telah menentukan penghala mux seperti berikut:

func main() {
    r := mux.NewRouter()
    r.Handle("/", http.FileServer(http.Dir("./static/")))
    r.HandleFunc("/search/{searchTerm}", Search)
    r.HandleFunc("/load/{dataId}", Load)
    http.ListenAndServe(":8100", nil)
}

Apabila mengakses http://localhost:8100 dalam penyemak imbas anda, index.html berjaya dipaparkan. Walau bagaimanapun, percubaan untuk mengakses fail CSS dan JavaScript dalam subdirektori menghasilkan 404 ralat.

Penyelesaian Menggunakan PathPrefix

Untuk menyelesaikan isu ini, kami menggunakan kaedah PathPrefix yang disediakan oleh pakej mux. Dengan menggunakan kaedah ini, kami boleh menentukan awalan laluan yang biasa kepada semua fail statik, dan kemudian menetapkan pengendali untuk awalan laluan itu.

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/search/{searchTerm}", Search)
    r.HandleFunc("/load/{dataId}", Load)
    r.PathPrefix("/").Handler(http.FileServer(http.Dir("./static/")))
    http.ListenAndServe(":8100", r)
}

Dengan menggunakan PathPrefix("/").Handler, kami pada asasnya mengatakan bahawa untuk mana-mana laluan yang bermula dengan "/", kami harus menunda kepada pengendali FileServer. Ini memastikan semua fail statik dalam direktori statik/ disampaikan dengan betul, termasuk fail dalam subdirektori seperti css/ dan js/.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 404 Semasa Menyajikan Kandungan Statik dengan PathPrefix Gorilla Mux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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