我去学习网络编程和了解寄托都发生了什么,但我在这3个看似简单的线条迷路:Golang提供静态文件,请解释这3行代码
fs := http.FileServer(http.Dir("public"))
handler := http.StripPrefix("/static/", fs)
mux.Handle("/static/", handler)
.. 。我已经阅读了去SRC以下行,这就是我可以推断:
http.Dir("public")
是铸造字符串“公众”,键入目录。- 然后我们为一个文件(包括其所有内容)http.FileServer()
- 我们剥去前缀,因为现在我们是handleFunc()内为FS
- StripPrefix()创建的HandlerFunc()
- mux.Handle()在多路复用器中注册HandlerFunc()。
- 深进了兔子洞......然后这个够程
go c.serve(ctx)
通过func (srv *Server) Serve(l net.Listener) error {}
- 所以里面
/public/
DIR每个静态文件是由我们的服务器同时提供服务。
有人可以确认或解释3行代码中究竟发生了什么。