理解Go 的Web 伺服器中的檔案系統根
當使用Go 的net/http 套件實現Web 伺服器功能時,出現了一個關鍵問題:在哪裡網站的根目錄是否會對應到檔案系統?
與某些靜態檔案伺服器不同, net/http 套件使用處理程序來管理 HTTP 要求。處理程序處理請求並產生回應,無需指定的“根”目錄。
但是,對於靜態檔案服務,FileServer() 函數提供了解決方案。透過指定絕對路徑,明確建立根目錄。如果使用相對路徑,則指目前工作目錄(通常是執行應用程式的位置)。
例如,考慮以下設定:
http.Handle("/", http.FileServer(http.Dir("/tmp")))
這對應了 URL root「/」到檔案系統上的「/tmp」目錄。因此,對「/mydoc.txt」的請求將檢索「/tmp/mydoc.txt」檔案。
使用 StripPrefix() 函數可以實現更精細的自訂。例如,要在URL“/tmpfiles/”下提供“/tmp”,以下配置就足夠了:
http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
透過利用處理程序並了解FileServer() 內的根目錄映射,開發人員可以使用Go 的Web 伺服器框架有效地提供靜態檔案。
以上是Go 的 net/http Web 伺服器將網站根對應到檔案系統的哪裡?的詳細內容。更多資訊請關注PHP中文網其他相關文章!