mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-11 22:14:02 +01:00
common/embed: replace all go:embed use by an embedded archive
Some of the files were quite big:
- asns.csv ~ 3 MB
- index.js ~ 1.5 MB
- *.svg ~ 2 MB
Use a ZIP archive to put them all and embed it. This reduce the binary
size from 89 MB to 82 MB. 🤯
This also pulls some code modernization (use of http.ServeFileFS).
This commit is contained in:
@@ -4,31 +4,20 @@
|
||||
package console
|
||||
|
||||
import (
|
||||
"embed"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
//go:embed data/frontend
|
||||
var embeddedAssets embed.FS
|
||||
|
||||
func (c *Component) defaultHandlerFunc(w http.ResponseWriter, req *http.Request) {
|
||||
assets := c.embedOrLiveFS(embeddedAssets, "data/frontend")
|
||||
f, err := http.FS(assets).Open("index.html")
|
||||
if err != nil {
|
||||
http.Error(w, "Application not found.", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
http.ServeContent(w, req, "index.html", time.Time{}, f)
|
||||
f.Close()
|
||||
assets := c.embedOrLiveFS("data/frontend")
|
||||
http.ServeFileFS(w, req, assets, "index.html")
|
||||
}
|
||||
|
||||
func (c *Component) staticAssetsHandlerFunc(w http.ResponseWriter, req *http.Request) {
|
||||
assets := c.embedOrLiveFS(embeddedAssets, "data/frontend/assets")
|
||||
assets := c.embedOrLiveFS("data/frontend/assets")
|
||||
http.FileServer(http.FS(assets)).ServeHTTP(w, req)
|
||||
}
|
||||
|
||||
func (c *Component) docAssetsHandlerFunc(w http.ResponseWriter, req *http.Request) {
|
||||
docs := c.embedOrLiveFS(embeddedDocs, "data/docs")
|
||||
docs := c.embedOrLiveFS("data/docs")
|
||||
http.FileServer(http.FS(docs)).ServeHTTP(w, req)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user