summaryrefslogtreecommitdiffstats
path: root/resource
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-07-29 14:26:45 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-07-29 14:26:45 +0200
commit786f72302f65580ca8d1df2132a7756584539ea0 (patch)
tree0bbf7b6135c6d2c16dce4bdafa6d6d5a13ba69cd /resource
parent0cae1cf8286b128295057d076c479c929f0febb3 (diff)
Fix image cache eviction for sites with subdir in baseURL
Fixes #5006
Diffstat (limited to 'resource')
-rw-r--r--resource/image_cache.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/resource/image_cache.go b/resource/image_cache.go
index 4fb45c17f..e5149e7a2 100644
--- a/resource/image_cache.go
+++ b/resource/image_cache.go
@@ -33,7 +33,7 @@ type imageCache struct {
func (c *imageCache) isInCache(key string) bool {
c.mu.RLock()
- _, found := c.store[key]
+ _, found := c.store[c.normalizeKey(key)]
c.mu.RUnlock()
return found
}
@@ -41,6 +41,7 @@ func (c *imageCache) isInCache(key string) bool {
func (c *imageCache) deleteByPrefix(prefix string) {
c.mu.Lock()
defer c.mu.Unlock()
+ prefix = c.normalizeKey(prefix)
for k := range c.store {
if strings.HasPrefix(k, prefix) {
delete(c.store, k)
@@ -48,6 +49,16 @@ func (c *imageCache) deleteByPrefix(prefix string) {
}
}
+func (c *imageCache) normalizeKey(key string) string {
+ // It is a path with Unix style slashes and it always starts with a leading slash.
+ key = filepath.ToSlash(key)
+ if !strings.HasPrefix(key, "/") {
+ key = "/" + key
+ }
+
+ return key
+}
+
func (c *imageCache) clear() {
c.mu.Lock()
defer c.mu.Unlock()