mirror of
https://github.com/minio/minio.git
synced 2024-12-25 22:55:54 -05:00
Merge pull request #1170 from krishnasrinivas/caching
caching: disable caching of index.html and enable caching for other UI asset files.
This commit is contained in:
commit
2520298734
@ -20,6 +20,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"net/http"
|
"net/http"
|
||||||
"path"
|
"path"
|
||||||
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -125,8 +126,20 @@ func setBrowserCacheControlHandler(h http.Handler) http.Handler {
|
|||||||
|
|
||||||
func (h cacheControlHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (h cacheControlHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
if r.Method == "GET" && strings.Contains(r.Header.Get("User-Agent"), "Mozilla") {
|
if r.Method == "GET" && strings.Contains(r.Header.Get("User-Agent"), "Mozilla") {
|
||||||
// Expire cache in one hour for all browser requests.
|
// For all browser requests set appropriate Cache-Control policies
|
||||||
w.Header().Set("Cache-Control", "public, max-age=3600")
|
match, e := regexp.MatchString(privateBucket+`/([^/]+\.js|favicon.ico)`, r.URL.Path)
|
||||||
|
if e != nil {
|
||||||
|
writeErrorResponse(w, r, InternalError, r.URL.Path)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if match {
|
||||||
|
// For assets set cache expiry of one year. For each release, the name
|
||||||
|
// of the asset name will change and hence it can not be served from cache.
|
||||||
|
w.Header().Set("Cache-Control", "max-age=31536000")
|
||||||
|
} else if strings.HasPrefix(r.URL.Path, privateBucket+"/") {
|
||||||
|
// For non asset requests we serve index.html which will never be cached.
|
||||||
|
w.Header().Set("Cache-Control", "no-store")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
h.handler.ServeHTTP(w, r)
|
h.handler.ServeHTTP(w, r)
|
||||||
}
|
}
|
||||||
|
@ -58,15 +58,6 @@ type GenericRep struct {
|
|||||||
UIVersion string `json:"uiVersion"`
|
UIVersion string `json:"uiVersion"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GenericArgs - empty struct
|
|
||||||
type GenericArgs struct{}
|
|
||||||
|
|
||||||
// GetUIVersion - get UI version
|
|
||||||
func (web webAPI) GetUIVersion(r *http.Request, args *GenericArgs, reply *GenericRep) error {
|
|
||||||
reply.UIVersion = miniobrowser.UIVersion
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServerInfoRep - server info reply.
|
// ServerInfoRep - server info reply.
|
||||||
type ServerInfoRep struct {
|
type ServerInfoRep struct {
|
||||||
MinioVersion string
|
MinioVersion string
|
||||||
|
Loading…
Reference in New Issue
Block a user