diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/web/server.go | 12 | ||||
| -rw-r--r-- | internal/web/templates/index.html | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/internal/web/server.go b/internal/web/server.go index 50bf45d..10401ed 100644 --- a/internal/web/server.go +++ b/internal/web/server.go @@ -46,7 +46,17 @@ func NewServer(cfg config.Config) http.Handler { } mux.Handle("GET /static/", http.StripPrefix("/static/", http.FileServer(http.FS(staticSub)))) - return mux + return noStore(mux) +} + +// noStore stops the browser caching any lectio-web response, so a rebuilt or +// reinstalled server never has an old page, base.css or theme.css served from +// cache (which presents as "switching themes stopped working" after an update). +func noStore(h http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "no-store") + h.ServeHTTP(w, r) + }) } // today is lectio-web's "no ?date=" default, in the YYYY-MM-DD form every diff --git a/internal/web/templates/index.html b/internal/web/templates/index.html index cc56a09..a1247e6 100644 --- a/internal/web/templates/index.html +++ b/internal/web/templates/index.html @@ -61,7 +61,7 @@ <label class="theme-picker">motyw <select id="theme-select" - onchange="document.getElementById('theme').href='/theme.css?name='+encodeURIComponent(this.value)"> + onchange="var o=document.getElementById('theme'),n=o.cloneNode(false);n.setAttribute('href','/theme.css?name='+encodeURIComponent(this.value));o.replaceWith(n);"> {{range .ThemeOpts}} <option value="{{.Name}}" {{if .Selected}}selected{{end}}>{{.Name}}</option> {{end}} |
