go:embed 可提供嵌入静态文件功能,首页文件 index.html 的放置及设定
文件结构:
.
├── main.go
└── abc/
└── index.html
//go:embed abc
var abc embed.FS
func main() {
// 以前的方式
//fileServer := http.FileServer(http.Dir("./abc")) // New code
//http.Handle("/", fileServer) // New code
sub, _ := fs.Sub(abc, "abc")
// 根目录 /index.html
http.Handle("/", http.FileServer(http.FS(sub)))
// 子目录 /abc/index.html
http.Handle("/abc/", http.StripPrefix("/abc/", http.FileServer(http.FS(sub))))
// 其它路由
http.HandleFunc("/hello", helloHandler)
fmt.Printf("Starting server at port 8081\n")
if err := http.ListenAndServe(":8081", nil); err != nil {
log.Fatal(err)
}
}