2013-05-28 36 views
3

我已启用django.middleware.gzip.GZipMiddleware。 它提供模板gzipping。django无法在heroku上提供gzip

Django的压缩机被设置为COMPRESS_STORAGE = 'compressor.storage.GzipCompressorFileStorage'

当地一切正常。静态css和js资产被压缩并分割成一个文件和gzipped,html响应是gzipped页面,但部署在heroku上,它不起作用。 Django压缩机甚至不会在其文件夹中创建.gz版本。

今天,我可以摆脱压缩机,并预先构建gss的CSS和JS。但它看起来很奇怪。至少中间件的requirements得到满足。

UPD

好吧,我本地化问题的一部分。出于某种原因,我的代理未配置为处理压缩内容。所以GZipMiddleware就像它应该那样工作。 django压缩机仍有待测试。

UPD2

毕竟一切正常。与压缩机的问题是,只要我能理解的AWS_IS_GZIPPED = True settings.py中

回答

0

由于缺少看看这里(部署到Amazon S3后):https://mike.tig.as/blog/2012/02/13/deploying-django-on-heroku/ - 具体为:

雪松“herokuapp。 com“HTTP堆栈直接将请求连接到后端以获得灵活性(例如WebSocket等),但不提供gzip或缓冲请求。 (事实上​​,Heroku的Django的 文档提到使用gunicorn + GEVENT,但在相关的例子并不实际配置 GEVENT。)

+2

继https://devcenter.heroku.com/articles/http-routing #gzip-response,“任何压缩的响应必须在你的应用程序中完成”。这就是我想要做的... – nicorevin