Generated assets file are only mandatory in main

This commit is contained in:
SALLEYRON Julien 2018-05-25 15:10:04 +02:00 committed by Traefiker Bot
parent 9420308667
commit bfdd1997f6
3 changed files with 19 additions and 4 deletions

View file

@ -4,15 +4,22 @@ import (
"net/http" "net/http"
"github.com/containous/mux" "github.com/containous/mux"
"github.com/containous/traefik/autogen/genstatic" "github.com/containous/traefik/log"
"github.com/elazarl/go-bindata-assetfs" "github.com/elazarl/go-bindata-assetfs"
) )
// DashboardHandler expose dashboard routes // DashboardHandler expose dashboard routes
type DashboardHandler struct{} type DashboardHandler struct {
Assets *assetfs.AssetFS
}
// AddRoutes add dashboard routes on a router // AddRoutes add dashboard routes on a router
func (g DashboardHandler) AddRoutes(router *mux.Router) { func (g DashboardHandler) AddRoutes(router *mux.Router) {
if g.Assets == nil {
log.Error("No assets for dashboard")
return
}
// Expose dashboard // Expose dashboard
router.Methods(http.MethodGet). router.Methods(http.MethodGet).
Path("/"). Path("/").
@ -28,5 +35,5 @@ func (g DashboardHandler) AddRoutes(router *mux.Router) {
router.Methods(http.MethodGet). router.Methods(http.MethodGet).
PathPrefix("/dashboard/"). PathPrefix("/dashboard/").
Handler(http.StripPrefix("/dashboard/", http.FileServer(&assetfs.AssetFS{Asset: genstatic.Asset, AssetInfo: genstatic.AssetInfo, AssetDir: genstatic.AssetDir, Prefix: "static"}))) Handler(http.StripPrefix("/dashboard/", http.FileServer(g.Assets)))
} }

View file

@ -9,6 +9,7 @@ import (
"github.com/containous/traefik/safe" "github.com/containous/traefik/safe"
"github.com/containous/traefik/types" "github.com/containous/traefik/types"
"github.com/containous/traefik/version" "github.com/containous/traefik/version"
"github.com/elazarl/go-bindata-assetfs"
thoas_stats "github.com/thoas/stats" thoas_stats "github.com/thoas/stats"
"github.com/unrolled/render" "github.com/unrolled/render"
) )
@ -22,6 +23,7 @@ type Handler struct {
Statistics *types.Statistics `description:"Enable more detailed statistics" export:"true"` Statistics *types.Statistics `description:"Enable more detailed statistics" export:"true"`
Stats *thoas_stats.Stats `json:"-"` Stats *thoas_stats.Stats `json:"-"`
StatsRecorder *middlewares.StatsRecorder `json:"-"` StatsRecorder *middlewares.StatsRecorder `json:"-"`
DashboardAssets *assetfs.AssetFS
} }
var ( var (
@ -54,7 +56,7 @@ func (p Handler) AddRoutes(router *mux.Router) {
version.Handler{}.AddRoutes(router) version.Handler{}.AddRoutes(router)
if p.Dashboard { if p.Dashboard {
DashboardHandler{}.AddRoutes(router) DashboardHandler{Assets: p.DashboardAssets}.AddRoutes(router)
} }
} }

View file

@ -14,6 +14,7 @@ import (
"github.com/cenk/backoff" "github.com/cenk/backoff"
"github.com/containous/flaeg" "github.com/containous/flaeg"
"github.com/containous/staert" "github.com/containous/staert"
"github.com/containous/traefik/autogen/genstatic"
"github.com/containous/traefik/cmd" "github.com/containous/traefik/cmd"
"github.com/containous/traefik/cmd/bug" "github.com/containous/traefik/cmd/bug"
"github.com/containous/traefik/cmd/healthcheck" "github.com/containous/traefik/cmd/healthcheck"
@ -33,6 +34,7 @@ import (
"github.com/containous/traefik/types" "github.com/containous/traefik/types"
"github.com/containous/traefik/version" "github.com/containous/traefik/version"
"github.com/coreos/go-systemd/daemon" "github.com/coreos/go-systemd/daemon"
"github.com/elazarl/go-bindata-assetfs"
"github.com/ogier/pflag" "github.com/ogier/pflag"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"github.com/vulcand/oxy/roundrobin" "github.com/vulcand/oxy/roundrobin"
@ -163,6 +165,10 @@ func runCmd(globalConfiguration *configuration.GlobalConfiguration, configFile s
globalConfiguration.SetEffectiveConfiguration(configFile) globalConfiguration.SetEffectiveConfiguration(configFile)
globalConfiguration.ValidateConfiguration() globalConfiguration.ValidateConfiguration()
if globalConfiguration.API != nil && globalConfiguration.API.Dashboard {
globalConfiguration.API.DashboardAssets = &assetfs.AssetFS{Asset: genstatic.Asset, AssetInfo: genstatic.AssetInfo, AssetDir: genstatic.AssetDir, Prefix: "static"}
}
jsonConf, _ := json.Marshal(globalConfiguration) jsonConf, _ := json.Marshal(globalConfiguration)
log.Infof("Traefik version %s built on %s", version.Version, version.BuildDate) log.Infof("Traefik version %s built on %s", version.Version, version.BuildDate)