-1

我需要一些帮助来开发 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 来读取所有文件。

谢谢!

4

1 回答 1

-2

正如@Not_a_Golfer 所说;这可以通过 FileServer 来处理静态文件。在我的情况下,这很好用,因为我有许多未知文件。

于 2014-02-16T17:43:15.743 回答