我需要一些帮助来开发 Web 服务器。我从http://golang.org/doc/articles/wiki/获取了初始代码,特别是这个例子:
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 的处理函数。
我遇到的问题是,在我的服务器上,我将在我的页面中使用 javascript 链接(特别是 JQ 和图像等)。因此,当对这些工件发出 GET 请求时,我需要将它们作为字节从驱动器中提取出来,并将它们提供给处理程序中的客户端浏览器(如上所示)。
然而; 在运行时间之前,我不知道哪些文件位于本地文件夹中,因此我无法预先制作这些处理程序。我想知道 go 是否有办法在运行时动态生成函数。 所以我正在考虑的伪代码会是这样的:
for file in files:
http.HandleFunc(file.location, handler)
如果我可能以错误的方式进行此操作,并且如果有人在阅读它们后对为这些本地文件创建处理程序有想法,请告诉我。我也不知道文件的数量或数量,但我可以使用 Golang 来读取所有文件。
谢谢!