From 7487c74020f97829e466c7efbdf7bd9e5fa90b1b Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Tue, 13 Mar 2012 03:48:03 +0000 Subject: [PATCH] Fixed #17865 -- Strip whitespaces from the paths when using the CachedStaticFilesStorage backend. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17696 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/staticfiles/storage.py | 2 +- .../staticfiles_tests/project/documents/cached/denorm.css | 3 +++ tests/regressiontests/staticfiles_tests/tests.py | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/django/contrib/staticfiles/storage.py b/django/contrib/staticfiles/storage.py index 97e7e9c494..67ce5dccee 100644 --- a/django/contrib/staticfiles/storage.py +++ b/django/contrib/staticfiles/storage.py @@ -67,7 +67,7 @@ class CachedFilesMixin(object): def hashed_name(self, name, content=None): parsed_name = urlsplit(unquote(name)) - clean_name = parsed_name.path + clean_name = parsed_name.path.strip() if content is None: if not self.exists(clean_name): raise ValueError("The file '%s' could not be found with %r." % diff --git a/tests/regressiontests/staticfiles_tests/project/documents/cached/denorm.css b/tests/regressiontests/staticfiles_tests/project/documents/cached/denorm.css index 27b9a349b0..d6567b00dd 100644 --- a/tests/regressiontests/staticfiles_tests/project/documents/cached/denorm.css +++ b/tests/regressiontests/staticfiles_tests/project/documents/cached/denorm.css @@ -1 +1,4 @@ @import url("..//cached///styles.css"); +body { + background: #d3d6d8 url(img/relative.png ); +} diff --git a/tests/regressiontests/staticfiles_tests/tests.py b/tests/regressiontests/staticfiles_tests/tests.py index 7850b44b77..38075643a0 100644 --- a/tests/regressiontests/staticfiles_tests/tests.py +++ b/tests/regressiontests/staticfiles_tests/tests.py @@ -427,11 +427,13 @@ class TestCollectionCachedStorage(BaseCollectionTestCase, def test_template_tag_denorm(self): relpath = self.cached_file_path("cached/denorm.css") - self.assertEqual(relpath, "cached/denorm.363de96e9b4b.css") + self.assertEqual(relpath, "cached/denorm.c5bd139ad821.css") with storage.staticfiles_storage.open(relpath) as relfile: content = relfile.read() self.assertNotIn("..//cached///styles.css", content) self.assertIn("/static/cached/styles.93b1147e8552.css", content) + self.assertNotIn("url(img/relative.png )", content) + self.assertIn("/static/cached/img/relative.acae32e4532b.png", content) def test_template_tag_relative(self): relpath = self.cached_file_path("cached/relative.css")