2017-03-06 80 views
1

我们使用获取ERR_INCOMPLETE_CHUNKED_ENCODING当Django APIView使用

  • Django的
  • rest_framework
  • gunicorn
  • Postgres的
  • nginx的

一切都在本地工作。但在服务器上,当我打的请求从浏览器然后,我就ERR_INCOMPLETE_CHUNKED_ENCODING错误,当我做了卷曲,然后回答是

curl: (18) transfer closed with outstanding read data remaining 

即使当我重新启动gunicorn然后我马上获得1请求的响应,但后来它的地方挂起和进一步的请求不起作用。 我正在返回一个空数组以响应测试不工作,所以响应长度不是问题。

在Django中,我从APIView继承了MyView类(从rest_framework.views导入APIView)。当我将APIView更改为View(从django.views导入视图)时,所有事情都开始在服务器上正常工作。不确定是什么导致问题?它是APIView库还是gunicorn。 我在本地尝试过gunicorn,它工作。

回答

1

我在MIDDLEWARE_CLASSES settings.py中添加

'django.middleware.http.ConditionalGetMiddleware' 

,并开始工作。 该类在响应中添加Content-Length标头。

0

您应该更改用户的/ var/lib/nginx /的权限,而不是执行gunicorn。如果用户的用户名,你解决这个错误有:

chown -R username:username /var/lib/nginx