最近在做一个项目,使用golang做后端,react做前端。
后端用的是百度的golang框架GDP,对路由、数据库等做了封装,web内核目前是基于开源项目Gin实现。
由于react是SPA应用,所以需要用golang进行分流,默认路由到前端的静态目录,/api
的请求则由golang处理。
在处理默认路由时,遇到一个坑,默认的/
与Gin的有冲突,所以只能使用NoRoute
s.NoRoute(controllers.Static)
s.StaticFile("/manifest.json", "./build/manifest.json")
s.StaticFile("/favicon.ico", "./build/favicon.ico")
s.Static("/static", "./build/static")
NoRoute对应的HandleFunc
func Static(ctx *Context) {
ctx.File("./build/index.html")
}
这样就能让Gin支持SPA。