django升级后出现脱机压缩(django_compressor app)错误

时间:2013-02-27 02:56:10

标签: django django-compressor

我刚刚将Django 1.4.2升级到1.5,我开始在 django_compressor 上出错。

You have offline compression enabled but key "eb225276268ea55d3b90c71df63109d9" is missing from offline manifest. You may need to run "python manage.py compress".

另外,我将django_compressor更新到最后一个版本(实际1.2),仍然得到相同的错误。

当我尝试python manage.py compress时,我注意到:

c:\python27\lib\site-packages\django\utils\hashcompat.py:9: DeprecationWarning: django.utils.hashcompat is deprecated; use hashlib instead DeprecationWarning)

此通知是否与离线压缩错误有关?

[增订] 我发现了另一个有趣的事情......

在我遇到问题的模板中,我删除了所有应该压缩的css:

 {% extends "base.html" %}
    {%  block head %}
        {% load compress %}
        {% compress css %}

        {% endcompress %}
    {% endblock %}
...

我运行了python manage:

python manage.py compress 
python manage.py collectstatic   --noinput

没有错误。

但......问题仍然存在。

You have offline compression enabled but key "e764a8b7e7e314ed8c98aa5d25fc76b4" is missing from offline manifest. You may need to run "python manage.py compress".
1   {% extends "base.html" %}
2   {% block head %}
3   {% load compress %}
4   {% compress css %}
5   
6   {% endcompress %}
7   {% endblock %}
8   

另一个重要信息:我运行python manage.py compress

时列出了.html文件

3 个答案:

答案 0 :(得分:3)

好吧,我必须从内部页面中删除所有{% load compress %}块,并在base.html中包含每个js和css。现在它奏效了。但我仍然觉得很奇怪这个问题刚刚发生在django更新之后。

答案 1 :(得分:0)

我有同样的问题,我尝试了我在互联网上找到的所有可能的解决方案,但是每次运行python manage.py压缩都是徒劳的,我曾经得到同样的错误。

最后我想到的不是找到解决方案,而是通过读取compress.py来调试(文件的路径在错误控制台中),通过这样做我发现有压缩标签内的标签。

{%compress js%}   {%compress js%}

{%endcompress%}

{%endcompress%}

所以密钥总是不在manifest.json文件中。

答案 2 :(得分:-1)

没有

错误告诉您,虽然您启用了脱机压缩,但该进程从未运行过,或者缓存为空。

基本上,如果你告诉压缩器不要尝试压缩每个HTTP请求上的文件(离线压缩),它会查看Django的缓存系统以找到资产压缩版本的路径。

如果启用了离线压缩,并且无法找到缓存所说文件的路径,那么它就会出现问题。