Opened 3 years ago

Closed 3 years ago

#18430 closed Bug (fixed)

CachedFilesMixin crashed when CSS files contains non-ascii utf-8 character

Reported by: brantyoung Owned by: dbrgn
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


Traceback (most recent call last):

  File ".../ENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/", line 120, in collect
    for original_path, processed_path, processed in processor:
  File ".../ENV/local/lib/python2.7/site-packages/django/contrib/staticfiles/", 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)


# 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 collectstatic

Howto fix:

I relace following code:

content =


content ='utf-8')

just worked as expected.

Change History (5)

comment:1 Changed 3 years ago by dbrgn

  • Needs documentation unset
  • Needs tests unset
  • Owner changed from nobody to dbrgn
  • Patch needs improvement unset

comment:2 Changed 3 years ago by dbrgn

  • Severity changed from Release blocker to Normal

I can't reproduce this on current trunk using STATICFILES_STORAGE = '' (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?

comment:3 Changed 3 years ago by aaugustin

  • Resolution set to needsinfo
  • Status changed from new to closed

Closing as 'needsinfo' since there isn't enough information to reproduce the issue.

Last edited 3 years ago by aaugustin (previous) (diff)

comment:4 Changed 3 years ago by brantyoung

  • Resolution needsinfo deleted
  • Status changed from closed to reopened

I create a minimal project to reproduce this ticket:

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.

Last edited 3 years ago by brantyoung (previous) (diff)

comment:5 Changed 3 years ago by Jannis Leidel <jannis@…>

  • Resolution set to fixed
  • Status changed from reopened to closed

In [3727f6d09681e4cb23d67e14ecc677a364c991bd]:

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.

Note: See TracTickets for help on using tickets.
Back to Top