(转) Golang embed 的 index.html 文件存放路径

声明:内容源自网络,版权归原作者所有。若有侵权请在网页聊天中联系我

原文地址

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)
	}
}

相关文章