我正在尝试缩小和压缩我的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压缩文件,甚至没有缩小文件。我错过了什么?
答案 0 :(得分:1)
包含的文件不得包含gzipped扩展名。只提供文件名(* .css)压缩器将自动检查并加载文件的解压缩版本(需要具有相同的名称加上.gz)。
请注意,它仅在生产时加载压缩文件(使用debug = false和脱机压缩启用)