Membuka Direktori "Root" dalam Pelayan Web Go
Dalam pelayan web net/http Go, konsep "root" tetap direktori untuk menyampaikan fail tiada. Sebaliknya, pengendali digunakan untuk membalas permintaan URL, memberikan lebih fleksibiliti dan kawalan ke atas penghantaran kandungan.
Pemetaan Pengendali
Pengendali ialah fungsi yang memproses permintaan HTTP dan menjana tindak balas yang sepadan. URL dikaitkan dengan pengendali menggunakan fungsi Handle() atau HandleFunc(). Apabila permintaan HTTP diterima, pelayan memadankan URL yang diminta dengan pengendali berdaftar untuk menentukan pengendali yang harus mengendalikan permintaan tersebut.
Fail Statik
Untuk menyampaikan fail statik , Go menyediakan fungsi FileServer(). Ia mengembalikan pengendali yang menyediakan fail daripada direktori "root" yang ditentukan. Direktori ini boleh ditentukan sebagai laluan mutlak atau relatif.
Laluan Mutlak
Jika laluan mutlak digunakan dengan FileServer(), direktori "root" adalah jelas .
Saudara mara Laluan
Laluan relatif, walau bagaimanapun, bergantung pada direktori kerja semasa, yang biasanya merupakan direktori dari mana aplikasi itu dimulakan. Contohnya:
http.Handle("/", http.FileServer(http.Dir("/tmp")))
Ini menugaskan pengendali untuk menyampaikan fail daripada direktori "/tmp", dipetakan ke URL akar "/". Oleh itu, respons kepada "/mydoc.txt" akan menjadi fail "/tmp/mydoc.txt".
Pemetaan Kompleks
Senario pemetaan yang lebih kompleks boleh dicapai dengan fungsi StripPrefix(), yang mengubah suai laluan URL permintaan sebelum ia dihantar ke FileServer(). Ini membolehkan penyajian fail daripada direktori atau laluan yang berbeza daripada URL akar.
Contoh:
http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
Persediaan ini menyediakan fail daripada "/tmp" di bawah laluan URL "/tmpfiles/" ; permintaan untuk "/tmpfiles/mydoc.txt" akan bertindak balas dengan fail "/tmp/mydoc.txt".
Atas ialah kandungan terperinci Bagaimanakah Pelayan `net/http` Go Mengendalikan Penyajian Fail Statik Tanpa Direktori Root Tetap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!