如何在现有项目中使用go:embed
如何在现有项目中使用go:embed
1. 运行环境
go version go1.16.2 windows/amd64
2. 问题描述?
我想在现有的一个go项目中加入go:embed 来打包前端的html、js等文件。该项目需要通过http模块来启动web服务。简要代码如下:
server := new(Server)
mux := http.NewServeMux()
mux.Handle("/", server)
server.hserver.Handler = mux
addr := fmt.Sprintf("%s:%d", ip, port)
server.hserver.Addr = addr
server.hserver.ListenAndServe()
这个server还会根据前端操作动态执行数据库操作。
现在我想要使用go:embed 将前端文件打包,主要代码如下:
//go:embed static/*
var localfs embed.FS
http.Handle("/", http.FileServer(http.FS(localfs)))
http.ListenAndServe(":8989", nil)
3. 您期望得到的结果?
我的问题是,embed的代码需要启动一个web服务,如何能在不修改原有web服务代码的情况下加入embed的服务?
007. 标准库 embed 包:使用 embed 打包模板和静态文件