Django压缩器需要太多时间来响应(15秒)

时间:2014-10-15 09:51:04

标签: django django-compressor

我有app.html页面,包含许多咖啡脚本(58个文件)。 我用django-compressor编译它们:

{% compress js %}
<script type="text/coffeescript" src="/static/scripts/commons/commons.coffee"></script>
<script type="text/coffeescript" src="/static/scripts/app/model/Storage.coffee"></script>
<script type="text/coffeescript" src="/static/scripts/app/model/Unit.coffee"></script>
....
{% endcompress %}

所有内容都可以编译并运行,但页面响应需要15秒。我认为第一次请求应该没问题(应该编译咖啡),但是在第二次,第三次和所有进一步的请求上需要15秒。

输出始终相同:

<script type="text/javascript" src="/static/CACHE/js/commons.33f0b9628e28.js"></script>
<script type="text/javascript" src="/static/CACHE/js/Storage.924e88456824.js"></script>
<script type="text/javascript" src="/static/CACHE/js/Unit.0fdebfecb96b.js"></script>
....

我没有更改文件,我只是刷新页面。

似乎django-compressor在每个请求上重新编译所有文件(但编译的js文件的名称不会改变,这很奇怪)。

任何方式我都可以加速django-compressor?

P.S。

  • 我通过manage.py runserver在本地运行django。
  • DEBUG = True(我的DEBUG选项在settings.py中设置为True)

2 个答案:

答案 0 :(得分:2)

django-compressor现在有一个用于缓存预编译器和加速咖啡编译的系统,只编译已更改的文件。这加快了开发响应时间。

https://github.com/django-compressor/django-compressor/pull/650

只需添加压缩机设置:

COMPRESS_CACHEABLE_PRECOMPILERS = (
    'text/coffeescript',
)

答案 1 :(得分:1)

我猜你已经设置了这个COMPRESS_ENABLED = True。设置为False。 另请查看COMPRESS_OFFLINE,以便您可以离线压缩静态:

$ python manage.py compress

这也会删除缓存键。顺便检查一下COMPRESS_CACHE_BACKEND