diff --git a/pageHandler/page-handler.go b/pageHandler/page-handler.go index 58726a4..b43a28e 100644 --- a/pageHandler/page-handler.go +++ b/pageHandler/page-handler.go @@ -65,9 +65,10 @@ func (ph *PageHandler) ServeHTTP(writer http.ResponseWriter, request *http.Reque if pageContentType == "" { if provider := ph.PageProviders[actualPagePath]; provider != nil { - pageContentType, pageContent = provider.GetContents(queryCollection) + var canCache bool + pageContentType, pageContent, canCache = provider.GetContents(queryCollection) lastMod = provider.GetLastModified() - if pageContentType != "" && ph.CacheSettings.EnableContentsCaching { + if pageContentType != "" && canCache && ph.CacheSettings.EnableContentsCaching { ph.setPageToCache(request.URL, actualQueries, &CachedPage{ Content: pageContent, ContentType: pageContentType, diff --git a/pageHandler/page-provider.go b/pageHandler/page-provider.go index 2585dd7..08da601 100644 --- a/pageHandler/page-provider.go +++ b/pageHandler/page-provider.go @@ -9,6 +9,6 @@ type PageProvider interface { GetPath() string GetSupportedURLParameters() []string GetLastModified() time.Time - GetContents(urlParameters url.Values) (contentType string, contents []byte) + GetContents(urlParameters url.Values) (contentType string, contents []byte, canCache bool) PurgeTemplate() } diff --git a/pageHandler/pages/TestPage.go b/pageHandler/pages/TestPage.go index bdadfe2..62d8e73 100644 --- a/pageHandler/pages/TestPage.go +++ b/pageHandler/pages/TestPage.go @@ -26,13 +26,13 @@ func (tp *TestPage) GetLastModified() time.Time { return startTime } -func (tp *TestPage) GetContents(urlParameters url.Values) (contentType string, contents []byte) { +func (tp *TestPage) GetContents(urlParameters url.Values) (contentType string, contents []byte, canCache bool) { if val, ok := urlParameters["test"]; ok { if len(val) > 0 { - return "text/plain", ([]byte)("Testing!\r\n" + val[0]) + return "text/plain", ([]byte)("Testing!\r\n" + val[0]), len(val) == 1 } } - return "text/plain", ([]byte)("Testing!") + return "text/plain", ([]byte)("Testing!"), true } func (tp *TestPage) PurgeTemplate() {