处理将请求重定向到相应的处理器之外,多路复用器还可以为静态文件提供服务。
2.实现package main
import (
"net/http"
)
func main() {
mux := http.NewServeMux()
files := http.FileServer(http.Dir("./"))
mux.Handle("/static/", http.StripPrefix("/static/", files))
server := &http.Server{
Addr: "0.0.0.0:8080",
Handler: mux,
}
server.ListenAndServe()
}
- 首先使用FileServer函数创建了一个能够为指定目录提供静态文件服务的处理器
- 然后使用StripPrefix包装了一层处理器,这一层的作用是去除path前缀
- 此时访问http://localhost:8080/static/可以看到指定目录的文件结构
- 如果使用相对路径,则路径是相对运行go命令的目录计算的