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
Lepaskan: 2024-12-08 01:18:13
asal
386 orang telah melayarinya

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

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

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

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!

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