1.简介

处理将请求重定向到相应的处理器之外,多路复用器还可以为静态文件提供服务。

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命令的目录计算的