【问题标题】:Gulp CSS minify & gzip + django-compressor not workingGulp CSS minify 和 gzip + django-compressor 不工作
【发布时间】: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


【解决方案1】:

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

请注意,它只会在生产环境中加载压缩文件(使用 debug=false 并启用离线压缩)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 2015-09-08
    • 2019-11-10
    相关资源
    最近更新 更多