0

我有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?

附言

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

2 回答 2

2

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

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

只需添加到您的压缩机设置:

COMPRESS_CACHEABLE_PRECOMPILERS = (
    'text/coffeescript',
)
于 2016-03-03T10:29:18.447 回答
1

我猜你已经设置了这个COMPRESS_ENABLED = True。设置为假。还要看看COMPRESS_OFFLINE,这样你就可以离线手动压缩静态:

$ python manage.py compress

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

于 2014-10-15T11:18:40.240 回答