diff options
author | Frédéric Guillot <fred@miniflux.net> | 2018-07-22 12:24:46 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-07-22 12:24:46 -0700 |
commit | cfc1f3eb699cf07efac034d6a76ab19c8cd7e656 (patch) | |
tree | e2b230612262947ac62f40d0a4e3498839d8a0e1 | |
parent | 9f6533ece90c6b528dd0af6f1b6dec4a7fa2fa3b (diff) |
Avoid browser caching issues when assets changes
-rw-r--r-- | template/common.go | 8 | ||||
-rw-r--r-- | template/html/common/layout.html | 6 | ||||
-rw-r--r-- | ui/view/view.go | 7 |
3 files changed, 13 insertions, 8 deletions
diff --git a/template/common.go b/template/common.go index 2db5d44..665e90f 100644 --- a/template/common.go +++ b/template/common.go @@ -107,10 +107,10 @@ var templateCommonMap = map[string]string{ {{ end }} <meta name="theme-color" content="{{ theme_color .theme }}"> - <link rel="stylesheet" type="text/css" href="{{ route "stylesheet" "name" .theme }}"> + <link rel="stylesheet" type="text/css" href="{{ route "stylesheet" "name" .theme }}?{{ .theme_checksum }}"> - <script type="text/javascript" src="{{ route "javascript" "name" "app" }}" defer></script> - <script type="text/javascript" src="{{ route "javascript" "name" "sw" }}" defer id="service-worker-script"></script> + <script type="text/javascript" src="{{ route "javascript" "name" "app" }}?{{ .app_js_checksum }}" defer></script> + <script type="text/javascript" src="{{ route "javascript" "name" "sw" }}?{{ .sw_js_checksum }}" defer id="service-worker-script"></script> </head> <body data-entries-status-url="{{ route "updateEntriesStatus" }}"> {{ if .user }} @@ -239,6 +239,6 @@ var templateCommonMap = map[string]string{ var templateCommonMapChecksums = map[string]string{ "entry_pagination": "756ef122f3ebc73754b5fc4304bf05e59da0ab4af030b2509ff4c9b4a74096ce", "item_meta": "2da78476f6c7fb8742c969ad1bfc20b7b61fddf97d79a77baf3cabda52f6fb49", - "layout": "16658c13e91cab88ba4c49f14654a95b1db12054cc96def3e40360a52acc6c54", + "layout": "952632cafa23e02e3ae74c33a6606e127ab7bff0b82a2aa848967da8966475a5", "pagination": "b592d58ea9d6abf2dc0b158621404cbfaeea5413b1c8b8b9818725963096b196", } diff --git a/template/html/common/layout.html b/template/html/common/layout.html index dbf7079..23464e6 100644 --- a/template/html/common/layout.html +++ b/template/html/common/layout.html @@ -33,10 +33,10 @@ {{ end }} <meta name="theme-color" content="{{ theme_color .theme }}"> - <link rel="stylesheet" type="text/css" href="{{ route "stylesheet" "name" .theme }}"> + <link rel="stylesheet" type="text/css" href="{{ route "stylesheet" "name" .theme }}?{{ .theme_checksum }}"> - <script type="text/javascript" src="{{ route "javascript" "name" "app" }}" defer></script> - <script type="text/javascript" src="{{ route "javascript" "name" "sw" }}" defer id="service-worker-script"></script> + <script type="text/javascript" src="{{ route "javascript" "name" "app" }}?{{ .app_js_checksum }}" defer></script> + <script type="text/javascript" src="{{ route "javascript" "name" "sw" }}?{{ .sw_js_checksum }}" defer id="service-worker-script"></script> </head> <body data-entries-status-url="{{ route "updateEntriesStatus" }}"> {{ if .user }} diff --git a/ui/view/view.go b/ui/view/view.go index 0854222..2dafa08 100644 --- a/ui/view/view.go +++ b/ui/view/view.go @@ -8,6 +8,7 @@ import ( "github.com/miniflux/miniflux/http/context" "github.com/miniflux/miniflux/template" "github.com/miniflux/miniflux/ui/session" + "github.com/miniflux/miniflux/ui/static" ) // View wraps template argument building. @@ -31,10 +32,14 @@ func (v *View) Render(template string) []byte { // New returns a new view with default parameters. func New(tpl *template.Engine, ctx *context.Context, sess *session.Session) *View { b := &View{tpl, ctx, make(map[string]interface{})} + theme := ctx.UserTheme() b.params["menu"] = "" b.params["csrf"] = ctx.CSRF() b.params["flashMessage"] = sess.FlashMessage() b.params["flashErrorMessage"] = sess.FlashErrorMessage() - b.params["theme"] = ctx.UserTheme() + b.params["theme"] = theme + b.params["theme_checksum"] = static.StylesheetsChecksums[theme] + b.params["app_js_checksum"] = static.JavascriptsChecksums["app"] + b.params["sw_js_checksum"] = static.JavascriptsChecksums["sw"] return b } |