我需要一些幫助來開發Web服務器。我把初始代碼http://golang.org/doc/articles/wiki/,特別是這個例子:Golang創建動態函數(運行時)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
此代碼是很簡單的遵循它是所有重定向的GET請求將「localhost」的,其輸出HTML處理函數。
我遇到的問題是,與我的服務器,我將在我的網頁(特別是JQ和圖像等)使用JavaScript鏈接。所以當GET請求進入這些工件時,我需要將它們從驅動器中以字節的形式提取出來,並將它們傳遞給處理程序中的客戶端瀏覽器(如上所述)。
但是;在運行之前,我不知道哪些文件位於本地文件夾中,因此我無法預先製作這些處理程序。我想知道是否有辦法在運行時動態地創建函數。所以我想的僞代碼會去是這樣的:
for file in files:
http.HandleFunc(file.location, handler)
如果可能我會對此錯誤的方式,如果有人閱讀這些條款後,對創造這些本地文件句柄想法,請讓我知道。我也不知道文件的數量或者多少,但是我可以使用Golang來讀取所有文件。
謝謝!
如果你只是需要靜態地處理這些文件,並且沒有對它們進行任何預處理,那麼爲什麼不使用'FileServer'作爲這個擴展名顯示? http://golang.org/pkg/net/http/#example_FileServer –