Opened 12 years ago
Closed 12 years ago
#18430 closed Bug (fixed)
CachedFilesMixin crashed when CSS files contains non-ascii utf-8 character
Reported by: | brantyoung | Owned by: | Danilo Bargen |
---|---|---|---|
Component: | contrib.staticfiles | Version: | 1.4 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | yes | UI/UX: | no |
Description
Traceback (most recent call last):
... ... File ".../ENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 120, in collect for original_path, processed_path, processed in processor: File ".../ENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/storage.py", line 226, in post_process content = pattern.sub(converter, content) UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 366: ordinal not in range(128)
Reproduce:
# save a css file that contains non-ascii utf-8 character (ie Chinese character):
.icon-link:before { content: "错"; }
# set STATICFILES_STORAGE
to any storage class that will involve CachedFilesMixin mixin
# run manage.py collectstatic
Howto fix:
I relace following code:
content = original_file.read().decode
to:
content = original_file.read().decode('utf-8')
just worked as expected.
Change History (5)
comment:1 by , 12 years ago
Owner: | changed from | to
---|
comment:2 by , 12 years ago
Severity: | Release blocker → Normal |
---|
comment:3 by , 12 years ago
Resolution: | → needsinfo |
---|---|
Status: | new → closed |
Closing as 'needsinfo' since there isn't enough information to reproduce the issue.
comment:4 by , 12 years ago
Resolution: | needsinfo |
---|---|
Status: | closed → reopened |
I create a minimal project to reproduce this ticket: https://bitbucket.org/brantyoung/cached_files_mixin_bug/
It's weird, if I moving all of font files to any directory except *PROJECTROOT*/css, every thing works fine.
But if both iconic-font.css and font files in the same sub-directory, CachedFilesMixin will crash.
comment:5 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
I can't reproduce this on current trunk using
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.CachedStaticFilesStorage'
(which uses the CachedFilesMixin). I even tried converting the css file to latin1, which garbled the contents, but still worked using collectstatic.Could you provide a CSS file that causes problems for you?
Or can somebody else reproduce the problem?