go编译静态文件到exe
需要写一个window执行的exe文件,用户执行这个文件时,程序首先会起一个http服务,然后自动打开浏览器访问这个服务默认页面。
使用go实现的话,有三个知识点
package main
import (
_ "embed"
"log"
"net"
"net/http"
"github.com/gin-gonic/gin"
"github.com/skratchdot/open-golang/open"
)
// 这里不能有空格
//go:embed templates/transaction.html
var content []byte
func main() {
l, err := net.Listen("tcp", "localhost:3000")
if err != nil {
log.Fatal(err)
}
r := SetRouter()
// 使用第三方的包打开chrome
open.RunWith("http://localhost:3000/transaction", "chrome")
// Start the blocking server loop
http.Serve(l, r)
}
func SetRouter() *gin.Engine {
r := gin.Default()
// 显示发起交易页面
r.GET("/transaction", func(c *gin.Context) {
c.Data(http.StatusOK, "text/html", content)
})
return r
}
交叉编译
Linux 下编译 Mac 和 Windows 64位可执行程序
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Mac 下编译 Linux 和 Windows 64位可执行程序
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
编译静态资源
embed标准包是go 1.16引入的,目的就是方便我们编译静态资源
本作品采用《CC 协议》,转载必须注明作者和本文链接
头像不错,借用一下 谢谢老板 cdn.learnku.com/uploads/avatars/55...
如果将一个文件夹下所有静态模板文件打包,应该怎么做呢这里?