一般的前后端分离,都是前端部署一份,后端部署一份。对于小型的项目,可以将两个合在一起打成一个exe启动,使用一个端口号。步骤如下:
一、构建出来前端的dist包
按照前端的打包流程输出dist包,基本目录如下:

二、将 dist 包与go服务整合
1、将 dist 文件放到 go 服务中,与 main.go 同目录下;
2、在 go 服务中加载 dist 中的静态文件:
package main
import (
"github.com/gin-contrib/static"
"github.com/gin-gonic/gin"
"io/ioutil"
_ "net/http/pprof"
"strings"
)
func main() {
app := gin.Default()
//加载静态资源
app.Use(static.Serve("/", static.LocalFile("dist", true)))
app.NoRoute(func(c *gin.Context) {
accept := c.Request.Header.Get("Accept")
flag := strings.Contains(accept, "text/html")
if flag {
content, err := ioutil.ReadFile("dist/index.html")
if (err) != nil {
c.Writer.WriteHeader(404)
c.Writer.WriteString("Not Found")
return
}
c.Writer.WriteHeader(200)
c.Writer.Header().Add("Accept", "text/html")
c.Writer.Write((content))
c.Writer.Flush()
}
})
app.Run("0.0.0.0:8888")
}
三、运行服务
按照上述步骤操作之后,就可以在编译器中运行了。
直接运行服务,访问 http://localhost:8888/ 就可以访问到前端页面
四、在服务器上运行服务
1、打包构建 go 服务
go build -o 别名.exe main.go
2、建一个目录,将 dist 与go生成的exe 放在一个目录下,双击exe即可运行
3、访问 http://localhost:8888/ 就可以访问到前端页面。配置如下:


本文介绍了如何将前端打包的dist包与Go后端服务结合,实现在一个exe中启动并访问单一端口,便于小型项目部署。步骤包括构建dist包、整合静态资源和一键运行服务。
1213

被折叠的 条评论
为什么被折叠?



