Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melayan Halaman Utama dan Fail Statik dari Direktori Root dalam Go?
Menyajikan Halaman Utama dan Kandungan Statik daripada Root
Dalam Go, menyajikan kandungan statik daripada direktori akar sambil mengekalkan pengendali akar untuk halaman utama boleh boleh dicapai menggunakan langkah berikut:
Kendalikan Fail Direktori Root Secara eksplisit
Buat fungsi, seperti serveSingle, untuk menyampaikan fail individu yang terletak dalam direktori akar. Pendekatan ini sesuai untuk fail seperti sitemap.xml, favicon.ico dan robots.txt yang biasanya dijangka hadir dalam akar:
func serveSingle(pattern string, filename string) { http.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, filename) }) }
Daftar Pengendali Fail
Daftar fungsi serveSingle untuk mengendalikan permintaan bagi fail tertentu dalam akar direktori:
serveSingle("/sitemap.xml", "./sitemap.xml") serveSingle("/favicon.ico", "./favicon.ico") serveSingle("/robots.txt", "./robots.txt")
Layankan Kandungan Statik daripada Subdirektori
Gunakan http.FileServer untuk menyampaikan kandungan statik daripada subdirektori, seperti "/static/":
http.Handle("/static", http.FileServer(http.Dir("./static/")))
Daftar Laman Utama Pengendali
Daftarkan pengendali akar, seperti HomeHandler, untuk mengendalikan permintaan halaman utama di "/":
http.HandleFunc("/", HomeHandler)
Kod Contoh
Menggabungkan teknik ini menghasilkan kod berikut:
package main import ( "fmt" "net/http" ) func HomeHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "HomeHandler") } func serveSingle(pattern string, filename string) { http.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, filename) }) } func main() { http.HandleFunc("/", HomeHandler) // homepage serveSingle("/sitemap.xml", "./sitemap.xml") serveSingle("/favicon.ico", "./favicon.ico") serveSingle("/robots.txt", "./robots.txt") http.Handle("/static", http.FileServer(http.Dir("./static/"))) http.ListenAndServe(":8080", nil) }
Oleh mengendalikan fail direktori akar secara eksplisit semasa menyampaikan kandungan statik daripada subdirektori yang berasingan, anda boleh mengekalkan pengendalian halaman utama dan kandungan statik yang disiarkan dengan gelagat yang serupa dengan pelayan web seperti Apache dan Nginx.
Atas ialah kandungan terperinci Bagaimana untuk Melayan Halaman Utama dan Fail Statik dari Direktori Root dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!