From d7263cc3c897e526eceeba1aaadb121c123b316a Mon Sep 17 00:00:00 2001 From: hexxa Date: Sun, 17 Apr 2022 12:33:11 +0800 Subject: [PATCH] fix(embed_fs): enable embed fs for prod --- src/handlers/multiusers/middlewares.go | 5 ++++- src/server/config.go | 2 +- src/server/server.go | 20 ++++++++++++++------ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/handlers/multiusers/middlewares.go b/src/handlers/multiusers/middlewares.go index 766eb1c..30f2b3c 100644 --- a/src/handlers/multiusers/middlewares.go +++ b/src/handlers/multiusers/middlewares.go @@ -82,7 +82,10 @@ func (h *MultiUsersSvc) APIAccessControl() gin.HandlerFunc { return } else if accessPath == "/" || // TODO: temporarily allow accessing static resources accessPath == "/favicon.ico" || - strings.HasPrefix(accessPath, "/static") { + strings.HasPrefix(accessPath, "/css") || + strings.HasPrefix(accessPath, "/font") || + strings.HasPrefix(accessPath, "/img") || + strings.HasPrefix(accessPath, "/js") { c.Next() return } diff --git a/src/server/config.go b/src/server/config.go index 37a3143..8036f9b 100644 --- a/src/server/config.go +++ b/src/server/config.go @@ -111,7 +111,7 @@ func DefaultConfigStruct() *Config { ReadTimeout: 2000, WriteTimeout: 1000 * 3600 * 24, // 1 day MaxHeaderBytes: 512, - PublicPath: "public", + PublicPath: "static/public", }, Workers: &WorkerPoolCfg{ QueueSize: 1024, diff --git a/src/server/server.go b/src/server/server.go index 2eee46e..5ee2f42 100644 --- a/src/server/server.go +++ b/src/server/server.go @@ -39,6 +39,7 @@ import ( "github.com/ihexxa/quickshare/src/kvstore" "github.com/ihexxa/quickshare/src/kvstore/boltdbpvd" "github.com/ihexxa/quickshare/src/worker/localworker" + qsstatic "github.com/ihexxa/quickshare/static" ) type Server struct { @@ -251,16 +252,23 @@ func initHandlers(router *gin.Engine, cfg gocfg.ICfg, deps *depidx.Deps) (*gin.E return nil, fmt.Errorf("new setting service error: %w", err) } + // middleware + router.Use(userHdrs.AuthN()) + router.Use(userHdrs.APIAccessControl()) + publicPath, ok := cfg.String("Server.PublicPath") if !ok || publicPath == "" { return nil, errors.New("publicPath not found or empty") } - - // middleware - router.Use(userHdrs.AuthN()) - router.Use(userHdrs.APIAccessControl()) - // tmp static server - router.Use(static.Serve("/", static.LocalFile(publicPath, false))) + if cfg.BoolOr("Server.Debug", false) { + router.Use(static.Serve("/", static.LocalFile(publicPath, false))) + } else { + esFS, err := qsstatic.NewEmbedStaticFS() + if err != nil { + return nil, err + } + router.Use(static.Serve("/", esFS)) + } // handler v1 := router.Group("/v1")