若未设置 live 参数,则直接调用嵌入的文件;
若设置了 live,调用外部文件,这样只修改这些静态文件不需要重新编译。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| var (
//go:embed static
Static embed.FS
)
func GetFileSystem() http.FileSystem {
if len(os.Args) > 1 && os.Args[1] == "live" {
log.Println("using live mode")
return http.FS(os.DirFS("static"))
}
log.Println("using embed mode")
fsys, err := fs.Sub(Static, "static")
if err != nil {
panic(err)
}
return http.FS(fsys)
}
|