Django-compressor: 离线压缩错误

创建于 2013-09-25  ·  6评论  ·  资料来源: django-compressor/django-compressor

我花了一周的时间调试这个(两个不同的单独的星期)并且非常沮丧。 我想我已经阅读了几乎所有的文章/博客文章/问题,但不知道该怎么做。 我有一个登台服务器和一个生产服务器(每个都有单独的 s3 存储桶),这适用于登台,但不适用于生产,即使服务器(在 Heroku 上)和存储桶是相同的。

我已经做到了,所以压缩标签只显示在子模板中。 我已经从压缩标签(例如 if/else)中删除了所有模板标签,这意味着我有更多的压缩标签,因此 if/else 语句可以在压缩标签之外。

有没有人在任何地方的生产环境中设置了功能正常的离线压缩来查看? 使用 compress offline=False--服务器上有很大的额外负载,通常是额外的 300-500 毫秒延迟,这显然不值得,并且违背了这个包的全部目的。

我真的可以使用一些帮助,但此时基本上不知道该怎么做,因为您可以在此处的问题列表中与数百人一起阅读相同的问题,在其他地方的博客文章中,似乎没有可重复的解决方案被建议 - 对于对性能至关重要并且可能任何 Django 部署都需要的东西来说,这是一个巨大的问题。

deployment

最有用的评论

前几天我忙于解决同样的问题,这就是解决方法,以防它对某人有所帮助。

在其中一个问题可重现的模板中,我使用了上下文。 在离线压缩期间无法访问上下文,这就是为什么在离线压缩期间生成的密钥和来自响应周期的密钥显然会有所不同。

尝试将您依赖上下文的 JavaScript 部分隔离到另一个块,该块位于 compress 标签之外。

希望这些信息对某人有所帮助。

所有6条评论

和这里一样。 似乎 django_compressor 的 COMPRESS_OFFLINE 产生的问题多于解决的问题。 我无法让它工作,因为收到这样的消息:

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

同样在这里 :/

无法使离线压缩工作。 不断收到 OfflineGenerationError。

因此,我确保在所有 Web 服务器上的每次部署期间都运行以下命令

python manage.py 压缩 --force
python manage.py collectstatic

那应该刷新 manifest.json 文件。 此外,我确保每次推送时清单文件的名称都不同。 就像添加一个版本号。 manifest_%s.json
我使用最新的 git commit hash id 到插件 %s。 因此,在部署期间,它会执行 git pull、compress、collectstatic,使用新的 manifest.json 文件创建新的缩小/聚合 css/js。
然后我重新启动apache。 所以一切都应该是顺利的。

我还确保 collectstatic 不会调用 --clear 来删除旧的静态/* 媒体。

有道理?

好的,我有完全相同的问题。
有人以可靠的方式从 S3 离线运行吗?

前几天我忙于解决同样的问题,这就是解决方法,以防它对某人有所帮助。

在其中一个问题可重现的模板中,我使用了上下文。 在离线压缩期间无法访问上下文,这就是为什么在离线压缩期间生成的密钥和来自响应周期的密钥显然会有所不同。

尝试将您依赖上下文的 JavaScript 部分隔离到另一个块,该块位于 compress 标签之外。

希望这些信息对某人有所帮助。

此页面是否有帮助?
0 / 5 - 0 等级