package Frontend import ( "io/fs" "net/http" "github.com/gorilla/mux" ) const ( indexPath = "Frontend/vue/dist/index.html" ) var ( routes []string = []string{ "/admin/login", "/admin/signup", "/admin/users", "/admin/users/new", "/admin/posts", } ) func indexHandler(entrypoint string) func(w http.ResponseWriter, r *http.Request) { fn := func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, entrypoint) } return http.HandlerFunc(fn) } func InitFrontendRoutes(router *mux.Router) { var ( frontendFS http.Handler stripped fs.FS route string ) stripped = GetFrontendAssets() frontendFS = http.FileServer(http.FS(stripped)) for _, route = range routes { router. PathPrefix(route). HandlerFunc(indexHandler(indexPath)) } router.PathPrefix("/public/"). Handler(http.StripPrefix( "/public/", http.FileServer(http.Dir("./Frontend/public/")), )) router.PathPrefix("/").Handler(frontendFS) }