Fixed #18430 -- Use the FILE_CHARSET setting when reading from a file during post processing with the cached staticfiles storage. Thanks to Brant Young for initial debugging.

This commit is contained in:
Jannis Leidel 2012-07-08 12:56:49 +02:00
parent 0a68a2994b
commit 3727f6d096
4 changed files with 9 additions and 3 deletions

View File

@ -228,7 +228,7 @@ class CachedFilesMixin(object):
# ..to apply each replacement pattern to the content # ..to apply each replacement pattern to the content
if name in adjustable_paths: if name in adjustable_paths:
content = original_file.read() content = original_file.read().decode(settings.FILE_CHARSET)
converter = self.url_converter(name) converter = self.url_converter(name)
for patterns in self._patterns.values(): for patterns in self._patterns.values():
for pattern in patterns: for pattern in patterns:

View File

@ -0,0 +1,5 @@
body {
background: url('window.png');
}
.snowman:before { content: "☃"; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

View File

@ -498,8 +498,9 @@ class TestCollectionCachedStorage(BaseCollectionTestCase,
collectstatic_cmd = CollectstaticCommand() collectstatic_cmd = CollectstaticCommand()
collectstatic_cmd.set_options(**collectstatic_args) collectstatic_cmd.set_options(**collectstatic_args)
stats = collectstatic_cmd.collect() stats = collectstatic_cmd.collect()
self.assertTrue(os.path.join('cached', 'css', 'window.css') in stats['post_processed']) self.assertIn(os.path.join('cached', 'css', 'window.css'), stats['post_processed'])
self.assertTrue(os.path.join('cached', 'css', 'img', 'window.png') in stats['unmodified']) self.assertIn(os.path.join('cached', 'css', 'img', 'window.png'), stats['unmodified'])
self.assertIn(os.path.join('test', 'nonascii.css'), stats['post_processed'])
def test_cache_key_memcache_validation(self): def test_cache_key_memcache_validation(self):
""" """