Gulp CSS minify& gzip + django-compressor无法正常工作

时间:2015-07-13 17:19:30

标签: django gzip gulp gz django-compressor

我正在尝试缩小和压缩我的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 css %}
      <link rel="stylesheet" href="{{ STATIC_URL }}mincss/filename.min.css.gz">
...more files
    {% endcompress %}

我99%确定gzip压缩生成的文件是正确的。它们是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压缩文件,甚至没有缩小文件。我错过了什么?

1 个答案:

答案 0 :(得分:1)

包含的文件不得包含gzipped扩展名。只提供文件名(* .css)压缩器将自动检查并加载文件的解压缩版本(需要具有相同的名称加上.gz)。

请注意,它仅在生产时加载压缩文件(使用debug = false和脱机压缩启用)