Dalam pakej net/http Go, "root sistem fail" pelayan web ialah tidak terikat secara langsung dengan direktori boleh laku. Sebaliknya, ia bergantung kepada pengendali yang berdaftar dengan pelayan.
Pengendali menyediakan logik untuk mengendalikan permintaan HTTP yang masuk. Apabila mendaftar pengendali, pembangun boleh menentukan corak URL yang akan disiarkan. Tiada URL "root" yang ditetapkan dan pengendali boleh memetakan ke mana-mana awalan URL.
Jika fungsi pelayan fail statik diperlukan, pakej http menyediakan fungsi FileServer(). Ia mengambil direktori sebagai input dan mengembalikan pengendali yang menyediakan fail statik daripada direktori itu.
Apabila menggunakan FileServer(), "root" fail statik ditentukan sebagai parameter. Jika laluan mutlak disediakan, ia merujuk terus folder yang ditentukan.
Walau bagaimanapun, jika laluan relatif digunakan, ia ditafsirkan secara relatif kepada direktori semasa atau berfungsi. Secara lalai, ini ialah folder tempat aplikasi dimulakan.
Sebagai contoh, jika anda mendaftar pengendali menggunakan:
http.Handle("/", http.FileServer(http.Dir("/tmp")))
Pengendali akan menyampaikan fail statik daripada "/tmp " direktori, dan URL akar "/" akan dipetakan ke direktori ini.
Untuk memetakan direktori ke laluan URL yang berbeza, anda boleh menggunakan StripPrefix() fungsi. Sebagai contoh, jika anda ingin menyampaikan "/tmp" di bawah awalan URL "/tmpfiles", anda boleh menggunakan:
http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
Ini akan menanggalkan awalan "/tmpfiles" daripada URL permintaan sebelum ianya dikendalikan oleh FileServer.
Memahami konsep ini adalah penting untuk menyediakan aplikasi web anda dan memetakan awalan URL dengan betul ke fail atau pengendali yang dikehendaki.
Atas ialah kandungan terperinci Bagaimanakah Pakej `net/http` Go Menentukan Root Sistem Fail Webserver?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!