Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #17689 -- Stopped the CachedStaticFilesStorage from trying to h…

…ash paths that aren't files.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17535 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 758a0cd0f1c646abf6f7d4f01850d3729ad603e0 1 parent 8f4d12e
Jannis Leidel jezdez authored
17 django/contrib/staticfiles/storage.py
View
@@ -105,13 +105,16 @@ def url(self, name, force=False):
hashed_name, fragment = name, ''
else:
clean_name, fragment = urldefrag(name)
- cache_key = self.cache_key(name)
- hashed_name = self.cache.get(cache_key)
- if hashed_name is None:
- hashed_name = self.hashed_name(clean_name).replace('\\', '/')
- # set the cache if there was a miss
- # (e.g. if cache server goes down)
- self.cache.set(cache_key, hashed_name)
+ if urlsplit(clean_name).path.endswith('/'): # don't hash paths
+ hashed_name = name
+ else:
+ cache_key = self.cache_key(name)
+ hashed_name = self.cache.get(cache_key)
+ if hashed_name is None:
+ hashed_name = self.hashed_name(clean_name).replace('\\', '/')
+ # set the cache if there was a miss
+ # (e.g. if cache server goes down)
+ self.cache.set(cache_key, hashed_name)
final_url = super(CachedFilesMixin, self).url(hashed_name)
4 tests/regressiontests/staticfiles_tests/tests.py
View
@@ -317,6 +317,10 @@ def test_template_tag_return(self):
"/static/test/file.ea5bccaf16d5.txt")
self.assertStaticRenders("cached/styles.css",
"/static/cached/styles.93b1147e8552.css")
+ self.assertStaticRenders("path/",
+ "/static/path/")
+ self.assertStaticRenders("path/?query",
+ "/static/path/?query")
def test_template_tag_simple_content(self):
relpath = self.cached_file_path("cached/styles.css")
Please sign in to comment.
Something went wrong with that request. Please try again.