Gunicorn не обслуживает png - PullRequest
0 голосов
/ 16 мая 2011

Я занимаюсь разработкой приложения Django, которое отображает данные в различных формах, включая таблицы и гистограммы.Он использует matplotlib для создания гистограммы в виде png.Затем он возвращает его, используя этот код:

.
.
.
canvas=FigureCanvas(fig)
response=HttpResponse(mimetype='image/png')
canvas.print_png(response)
return response

Все работает нормально, когда я использую встроенный сервер разработки Django.Однако, когда я использую:

python manage.py run_gunicorn 

все работает, кроме гистограмм.Вместо гистограммы я вижу URL.Нужно ли запускать nginx, чтобы заставить gunicorn отображать изображения в формате png, или я что-то упускаю?1014 *

1 Ответ

2 голосов
/ 18 мая 2011

Ах!Это связано с ошибкой, которую мы недавно исправили в Gunicorn [1].Очевидно, Django не будет устанавливать Content-Length при использовании HttpResponse.write ().Вы можете установить это вручную или, очевидно, просто добавив django.middleware.http.ConditionalGetMiddleware в свой список промежуточного программного обеспечения, и Django добавит Content-Length.

Мы выпустим новую версию Gunicorn вследующие пару дней, поэтому первоначальная ошибка будет исправлена ​​в ближайшее время.

[1] https://github.com/benoitc/gunicorn/commit/d83c63429eba755f5971217917e57feee85034be

...