-2
我正在學習語言,但我仍然缺乏一些知識。我正在編寫http靜態服務器(第一階段服務資產)。另外我試圖使用大猩猩/多路複用軟件包作爲路由器。go>如何從主要重構http處理程序
到目前爲止,我結束了
pagekage main
import (
"fmt"
"github.com/gorilla/mux"
"html"
"net/http"
)
func HomeHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
}
func main() {
r := mux.NewRouter()
r.HandleFunc("/", HomeHandler)
r.PathPrefix("/public/").Handler(http.StripPrefix("/public/",
http.FileServer(http.Dir("public/"))))
http.Handle("/", r)
http.ListenAndServe(":8080", nil)
}
它工作正常,並提供下/公/
現在我想重構代碼
r.PathPrefix("/public/").Handler(http.StripPrefix("/public/",
http.FileServer(http.Dir("public/"))))
是在所有文件表格
r.PathPrefix("/public/").Handler(PublicHandler)
這很基本,我想學習如何製作更好看的代碼。
您能對此提出建議嗎?謝謝。
嗨JimB,是的,我知道,我能做的就是爲你寫以上。我正在考慮將PublicHandler:= http.StripPrefix(「/ public /」,http.FileServer(http.Dir(「public /」)))移到它自己的函數中。而這一步使我感到困難。 – Jaro
@Jaro:請張貼你真正想問的例子。沒有理由不能從函數返回PublicHandler。 – JimB