【发布时间】:2015-07-13 17:19:29
【问题描述】:
我正在尝试缩小和压缩我的 css(以及后来的 js)并提供它。为此,我首先使用 gulp 对其进行缩小和压缩,然后使用 django-compressor 提供 gzip 压缩文件(因此只会发出 http 请求)。
我几乎遵循了这个指南: http://www.revsys.com/blog/2014/oct/21/ultimate-front-end-development-setup/
直接使用 gzip 压缩文件效果很好,但是当我尝试使用 django-compressor 对它们进行分组时,我收到以下错误:
UncompressableFileError at /
UnicodeDecodeError while processing '..../static/mincss/filename.min.css.gz'
with charset utf-8-sig: 'utf8' codec
can't decode byte 0x8b in position 1: invalid start byte
对应的就是上面的compress标签:
{% compress css %}
<link rel="stylesheet" href="{{ STATIC_URL }}mincss/filename.min.css.gz">
...more files
{% endcompress %}
我 99% 确定压缩后生成的文件是正确的。它们是 us-ascii(utf-8 的子集),它们包含 *.min.css 文件。
我的相关设置(据我所知)与指南中列出的设置相同。唯一的区别是,他在指南中包含了这样的 css 文件:
{% compress css %}
<link rel="stylesheet" href="{% static "stylesheets/main.css" %}" />
<link rel="stylesheet" href="{% static "stylesheets/some-other.css" %}" />
{% endcompress %}
但是这种方式(虽然它有效)不使用 gzip 压缩文件,甚至不使用压缩文件。我错过了什么?
【问题讨论】:
-
您的设置中是否也有 COMPRESS_ENABLED=True ?很容易错过。在我看来,django-compressor 认为您正在向它传递一个原始 CSS 文件,而不是一个已经 GZIP 和缩小的文件,但这只是一个猜测。
-
是的,很遗憾我已经通过了。
标签: django gulp gzip django-compressor