mirror of
https://github.com/mickael-kerjean/filestash
synced 2025-12-06 16:32:31 +01:00
chore (rewrite): improve loading speed on new release
This commit is contained in:
parent
9a45dc000a
commit
27f475d358
6 changed files with 68 additions and 2 deletions
4
Makefile
4
Makefile
|
|
@ -8,6 +8,10 @@ build_init:
|
|||
go generate -x ./server/...
|
||||
|
||||
build_frontend:
|
||||
make build_frontend_old
|
||||
cd public && make compress
|
||||
|
||||
build_frontend_old:
|
||||
NODE_ENV=production npm run build
|
||||
mkdir -p ./server/ctrl/static/www/canary/
|
||||
cp -R ./public/assets ./server/ctrl/static/www/canary/
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ compress:
|
|||
find . -type f -name '*.js' | xargs gzip -f -k --best
|
||||
find . -type f -name '*.css' | xargs brotli -f -k
|
||||
find . -type f -name '*.css' | xargs gzip -f -k
|
||||
find . -type f -name '*.svg' | xargs brotli -f -k
|
||||
find . -type f -name '*.svg' | xargs gzip -f -k
|
||||
|
||||
clean:
|
||||
find . -name '*.gz' -exec rm {} \;
|
||||
|
|
|
|||
|
|
@ -120,6 +120,6 @@
|
|||
"YES": "oui",
|
||||
"YOU_CANT_DO_THAT": "vous ne pouvez pas faire :)",
|
||||
"YOUR_EMAIL_ADDRESS": "votre adresse email",
|
||||
"YOUR_FILES": "vos fichiers",
|
||||
"YOUR_FILES": "vos données",
|
||||
"YOUR_MASTER_PASSWORD": "votre mot de passe principal"
|
||||
}
|
||||
|
|
|
|||
4
public/assets/logo/favicon.svg
Normal file
4
public/assets/logo/favicon.svg
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" version="1.1">
|
||||
<rect height="512" rx="20%" width="512" style="fill:#466372;"/>
|
||||
<path d="m 247.01004,112.61622 c -47.6307,0 -86.28859,37.63241 -86.42745,84.13081 h 0.44865 c 49.25434,-0.42726 86.21379,42.72771 86.96152,77.49736 -1.06817,-35.42125 38.16652,-76.90984 85.45541,-77.46529 -0.12821,-46.50911 -38.79678,-84.14151 -86.4488,-84.1522 z m 86.44881,84.1522 v 0.23498 c -59.81879,2.63844 -85.90404,51.77527 -85.64768,77.04872 0.47001,48.3998 -25.98911,90.98863 -91.03135,91.24498 l 177.76856,-0.6409 c 47.74821,0 86.44882,-36.93809 86.44882,-83.54332 0,-46.60525 -38.70061,-84.38719 -86.44882,-84.38719 h -1.06818 z m -85.72245,77.33712 c -1.22841,-33.31692 -33.11395,-76.74964 -87.17516,-77.05941 v -0.25634 c -47.56663,0.24566 -85.989494,37.94218 -86.00018,84.38717 0,46.60524 38.27333,84.38721 81.7274,84.17357 77.12349,-0.37386 92.67637,-57.98148 91.44794,-91.24499 z" fill="none" stroke="#f2f3f5" stroke-linejoin="round" stroke-width="35px" style="stroke:#fafafa;stroke-width:50;stroke-opacity:0.85"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
|
@ -7,7 +7,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
|
||||
<link rel="stylesheet" href="assets/css/designsystem.css">
|
||||
<link rel="stylesheet" href="custom.css">
|
||||
<link rel="icon" href="favicon.ico">
|
||||
<link rel="icon" href="assets/logo/favicon.svg">
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
|||
|
|
@ -223,6 +223,62 @@ func ServeFrontofficeHandler(ctx *App, res http.ResponseWriter, req *http.Reques
|
|||
http.Redirect(res, req, URL_SETUP, http.StatusTemporaryRedirect)
|
||||
return
|
||||
}
|
||||
|
||||
preloadScripts := []string{
|
||||
"/assets/boot/router_frontoffice.js", "/assets/boot/ctrl_boot_frontoffice.js",
|
||||
|
||||
"/assets/lib/skeleton/index.js", "/assets/lib/skeleton/router.js", "/assets/lib/skeleton/lifecycle.js",
|
||||
"/assets/lib/vendor/rxjs/rxjs.min.js", "/assets/lib/vendor/rxjs/rxjs-ajax.min.js", "/assets/lib/vendor/rxjs/rxjs-shared.min.js",
|
||||
"/assets/lib/rx.js", "/assets/lib/ajax.js",
|
||||
"/assets/lib/path.js", "/assets/lib/error.js", "/assets/lib/assert.js",
|
||||
"/assets/lib/dom.js", "/assets/lib/animate.js",
|
||||
|
||||
"/assets/components/loader.js", "/assets/components/modal.js", "/assets/components/notification.js",
|
||||
"/assets/components/icon.js",
|
||||
}
|
||||
turl := TrimBase(url)
|
||||
if strings.HasPrefix(turl, "/login") {
|
||||
preloadScripts = append(
|
||||
preloadScripts,
|
||||
"/assets/pages/ctrl_connectpage.js",
|
||||
"/assets/pages/connectpage/ctrl_form.js", "/assets/pages/connectpage/ctrl_forkme.js",
|
||||
"/assets/pages/connectpage/ctrl_poweredby.js",
|
||||
"/assets/pages/connectpage/model_config.js", "/assets/pages/connectpage/model_backend.js", "/assets/pages/connectpage/ctrl_form_state.js",
|
||||
|
||||
"/assets/lib/form.js", "/assets/lib/settings.js", "/assets/lib/random.js", "/assets/helpers/log.js",
|
||||
"/assets/model/session.js", "/assets/pages/adminpage/model_release.js",
|
||||
"/assets/components/form.js",
|
||||
"/assets/pages/ctrl_error.js",
|
||||
)
|
||||
} else if strings.HasPrefix(turl, "/files/") {
|
||||
preloadScripts = append(
|
||||
preloadScripts,
|
||||
"/assets/pages/filespage/ctrl_filesystem.js", "/assets/pages/filespage/modal_share.js",
|
||||
"/assets/pages/filespage/ctrl_upload.js", "/assets/components/sidebar.js", "/assets/components/breadcrumb.js",
|
||||
"/assets/lib/form.js", "/assets/components/dropdown.js", "/assets/components/decorator_shell_filemanager.js",
|
||||
"/assets/lib/random.js",
|
||||
|
||||
"/assets/pages/filespage/ctrl_submenu.js", "/assets/pages/filespage/ctrl_newitem.js",
|
||||
"/assets/pages/filespage/cache.js", "/assets/pages/ctrl_filespage.js",
|
||||
"/assets/pages/adminpage/model_release.js", "/assets/pages/filespage/modal_embed.js",
|
||||
"/assets/pages/filespage/thing.js", "/assets/pages/ctrl_error.js", "/assets/pages/filespage/model_virtual_layer.js",
|
||||
"/assets/pages/filespage/model_files.js", "/assets/pages/filespage/helper.js",
|
||||
"/assets/pages/filespage/model_acl.js", "/assets/pages/filespage/state_config.js",
|
||||
"/assets/pages/filespage/state_newthing.js", "/assets/pages/filespage/state_selection.js",
|
||||
"/assets/pages/filespage/modal_delete.js", "/assets/pages/filespage/modal_rename.js", "/assets/pages/filespage/modal_tag.js", "/assets/pages/filespage/modal_embed.js",
|
||||
|
||||
"/assets/components/form.js",
|
||||
"/assets/helpers/log.js", "/assets/lib/error.js", "/assets/model/config.js",
|
||||
"/assets/lib/assert.js", "/assets/model/session.js", "/assets/lib/store.js",
|
||||
"/assets/pages/filespage/state_config.js",
|
||||
)
|
||||
}
|
||||
header := res.Header()
|
||||
for _, href := range preloadScripts {
|
||||
header.Add("Link", fmt.Sprintf(`<%s>; rel="preload"; as="script"; crossorigin="anonymous";`, WithBase(href)))
|
||||
}
|
||||
header.Add("Link", `<`+WithBase("/about")+`>; rel="preload"; as="fetch"; crossorigin="use-credentials";`)
|
||||
|
||||
ServeIndex("index.frontoffice.html")(ctx, res, req)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue