在Go 的net/http 套件中,Web 伺服器的「檔案系統根”是不直接綁定到可執行檔的目錄。相反,它取決於向伺服器註冊的處理程序。
處理程序提供處理傳入 HTTP 請求的邏輯。註冊處理程序時,開發人員可以指定它將提供服務的 URL 模式。沒有指定的「根」URL,處理程序可以對應到任何 URL 前綴。
如果需要靜態檔案伺服器功能,http 套件提供 FileServer() 函數。它將目錄作為輸入並傳回處理程序,該處理程序為該目錄中的靜態檔案提供服務。
使用 FileServer() 時,靜態檔案的「根」被指定為參數。如果提供絕對路徑,則直接引用指定的資料夾。
但是,如果使用相對路徑,則解釋為相對於當前或工作目錄。預設情況下,這是應用程式啟動的資料夾。
例如,如果您使用以下方式註冊處理程序:
http.Handle("/", http.FileServer(http.Dir("/tmp")))
處理程序將從“/tmp”提供靜態文件" 目錄,根URL "/" 將映射到該目錄。前綴下提供“/tmp”,則可以使用:
這將從請求URL 中刪除“/tmpfiles”前綴。 Web 應用程式並將URL 前綴正確對應到所需的檔案或處理程序至關重要。以上是Go 的 net/http 套件如何決定 Web 伺服器的檔案系統根?的詳細內容。更多資訊請關注PHP中文網其他相關文章!