我刚刚将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
答案 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的缓存系统以找到资产压缩版本的路径。
如果启用了离线压缩,并且无法找到缓存所说文件的路径,那么它就会出现问题。