URI: 
       Fix image cache eviction for sites with subdir in baseURL - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 786f72302f65580ca8d1df2132a7756584539ea0
   DIR parent 0cae1cf8286b128295057d076c479c929f0febb3
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Sun, 29 Jul 2018 14:26:45 +0200
       
       Fix image cache eviction for sites with subdir in baseURL
       
       Fixes #5006
       
       Diffstat:
         M hugolib/page_collections.go         |       2 +-
         M resource/image_cache.go             |      13 ++++++++++++-
       
       2 files changed, 13 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/hugolib/page_collections.go b/hugolib/page_collections.go
       @@ -322,7 +322,7 @@ func (c *PageCollections) clearResourceCacheForPage(page *Page) {
                        first := page.Resources[0]
                        dir := path.Dir(first.RelPermalink())
                        dir = strings.TrimPrefix(dir, page.LanguagePrefix())
       -                // This is done to keep the memory usage in check when doing live reloads.
       +                dir = strings.TrimPrefix(dir, page.s.BaseURL.Path())
                        page.s.ResourceSpec.DeleteCacheByPrefix(dir)
                }
        }
   DIR diff --git 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()