mirror of https://github.com/minio/minio.git
UI: serve index.html if the requested file is not found in the assets bundle.
This commit is contained in:
parent
07da31f8b8
commit
e509bcb2b9
|
@ -104,7 +104,7 @@ func (h redirectHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
// '/rpc' is redirected to 'locationPrefix/rpc'
|
||||
// '/login' is redirected to 'locationPrefix/login'
|
||||
switch r.URL.Path {
|
||||
case "/", "/rpc", "/login":
|
||||
case "/", "/rpc", "/login", "/favicon.ico":
|
||||
location := h.locationPrefix + r.URL.Path
|
||||
// Redirect to new location.
|
||||
http.Redirect(w, r, location, http.StatusTemporaryRedirect)
|
||||
|
|
19
routers.go
19
routers.go
|
@ -19,7 +19,6 @@ package main
|
|||
import (
|
||||
"net"
|
||||
"net/http"
|
||||
"path"
|
||||
|
||||
router "github.com/gorilla/mux"
|
||||
jsonrpc "github.com/gorilla/rpc/v2"
|
||||
|
@ -58,6 +57,16 @@ type webAPI struct {
|
|||
secretAccessKey string
|
||||
}
|
||||
|
||||
// indexHandler - Handler to serve index.html
|
||||
type indexHandler struct {
|
||||
handler http.Handler
|
||||
}
|
||||
|
||||
func (h indexHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
r.URL.Path = privateBucket + "/"
|
||||
h.handler.ServeHTTP(w, r)
|
||||
}
|
||||
|
||||
// registerAPIHandlers - register all the handlers to their respective paths
|
||||
func registerAPIHandlers(mux *router.Router, a storageAPI, w *webAPI) {
|
||||
// Minio rpc router
|
||||
|
@ -72,10 +81,10 @@ func registerAPIHandlers(mux *router.Router, a storageAPI, w *webAPI) {
|
|||
|
||||
// RPC handler at URI - /minio/rpc
|
||||
minio.Path("/rpc").Handler(rpc)
|
||||
|
||||
// Web handler assets at URI - /minio/login
|
||||
minio.Path("/login").Handler(http.StripPrefix(path.Join(privateBucket, "login"), http.FileServer(assetFS())))
|
||||
minio.Path("/{file:.*}").Handler(http.StripPrefix(privateBucket, http.FileServer(assetFS())))
|
||||
// Serve javascript files and favicon.ico from assets
|
||||
minio.Path("/{assets:[^/]+.js|favicon.ico}").Handler(http.StripPrefix(privateBucket, http.FileServer(assetFS())))
|
||||
// Serve index.html for rest of the requests
|
||||
minio.Path("/{index:.*}").Handler(indexHandler{http.StripPrefix(privateBucket, http.FileServer(assetFS()))})
|
||||
|
||||
// API Router
|
||||
api := mux.NewRoute().PathPrefix("/").Subrouter()
|
||||
|
|
Loading…
Reference in New Issue