package main import ( "context" "os" _ "github.com/gogf/gf/contrib/drivers/sqlite/v2" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gctx" "36wisdom/biz/controller" "36wisdom/biz/dao" "36wisdom/biz/service/seed" ) func main() { var ctx context.Context = gctx.New() for _, dir := range []string{"data", "workspace"} { if err := os.MkdirAll(dir, 0o755); err != nil { g.Log().Fatal(ctx, err) } } dao.InitTables(ctx) seed.EnsureSeeded(ctx) s := g.Server() controller.Register(s) // 生产形态:前端产物 ui-src/dist 由后端 :8080 统一托管(前后端同端口) // 注:根路径须用 SetServerRoot——AddStaticPath("/", ...) 因前缀防误匹配守卫只服务根路径, // /assets 等子路径全部 404;素材目录 ui-src/static 以 /static 前缀单独挂载 if _, err := os.Stat("ui-src/dist"); err == nil { s.SetServerRoot("ui-src/dist") } if _, err := os.Stat("ui-src/static"); err == nil { s.AddStaticPath("/static", "ui-src/static") } s.Run() }