Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Melayan Kedua-dua Halaman Utama dan Kandungan Statik daripada Direktori Root dalam Go?

Bagaimana untuk Melayan Kedua-dua Halaman Utama dan Kandungan Statik daripada Direktori Root dalam Go?

Linda Hamilton
Lepaskan: 2024-12-18 11:05:10
asal
120 orang telah melayarinya

How to Serve Both a Homepage and Static Content from the Root Directory in Go?

Menyajikan Halaman Utama dan Kandungan Statik daripada Root in Go

In Go, menyajikan kedua-dua kandungan statik dan halaman utama daripada direktori akar sambil mengendalikan khusus URL memerlukan pendekatan yang disesuaikan. Secara lalai, mendaftarkan pengendali untuk laluan akar ("/") bercanggah dengan penyajian kandungan statik dari direktori yang sama.

Untuk menangani perkara ini, satu pilihan ialah menggunakan pelaksanaan FileServer alternatif yang menyemak kewujudan fail sebelum cuba menyampaikannya. Untuk fail yang tidak hadir, ia boleh menunda kepada pengendali halaman utama atau mengembalikan ralat 404.

Kod berikut menunjukkan pendekatan ini:

package main

import (
    "fmt"
    "net/http"
    "os"
)

func HomeHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "HomeHandler")
}

func exists(path string) bool {
    _, err := os.Stat(path)
    return !os.IsNotExist(err)
}

func FileServerWithFallback(dir string) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        path := dir + r.URL.Path
        if exists(path) {
            http.ServeFile(w, r, path)
            return
        }
    }
}

func main() {
    http.HandleFunc("/", HomeHandler) // homepage
    http.Handle("/static/", FileServerWithFallback("./static"))

    http.ListenAndServe(":8080", nil)
}
Salin selepas log masuk

Dalam kod ini, fungsi wujud menyemak sama ada fail wujud pada laluan tertentu. Pengendali FileServerWithFallback menyediakan fail jika ia wujud dalam direktori yang disediakan. Jika tidak, ia membenarkan permintaan untuk meneruskan ke pengendali halaman utama.

Dengan menggunakan pelaksanaan FileServer tersuai ini, kandungan statik boleh disampaikan daripada direktori akar sementara masih membenarkan pengendali halaman utama digunakan seperti yang diharapkan.

Atas ialah kandungan terperinci Bagaimana untuk Melayan Kedua-dua Halaman Utama dan Kandungan Statik daripada Direktori Root dalam 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