Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Melayan Halaman Utama dan Fail Statik dari Direktori Root dalam Go?

Bagaimana untuk Melayan Halaman Utama dan Fail Statik dari Direktori Root dalam Go?

Susan Sarandon
Lepaskan: 2024-12-26 16:03:11
asal
735 orang telah melayarinya

How to Serve a Homepage and Static Files from the Root Directory in 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)
    })
}
Salin selepas log masuk

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

Layankan Kandungan Statik daripada Subdirektori

Gunakan http.FileServer untuk menyampaikan kandungan statik daripada subdirektori, seperti "/static/":

http.Handle("/static", http.FileServer(http.Dir("./static/")))
Salin selepas log masuk

Daftar Laman Utama Pengendali

Daftarkan pengendali akar, seperti HomeHandler, untuk mengendalikan permintaan halaman utama di "/":

http.HandleFunc("/", HomeHandler)
Salin selepas log masuk

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

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!

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