我们在一个virtualbox UbuntuLTS12.04客户机上运行我们的开发环境。我们使用/管理.py在开发期间运行服务器。在
最近,我们将Django版本升级到最新版本(1.4.19),但注意到一个非常奇怪的行为:来自主机的请求需要5-30秒的时间来处理,而来自虚拟机内部的请求则在不到一秒钟的时间内得到满足,这是应该的。这个问题已经在django1.4.18(https://docs.djangoproject.com/fr/1.7/releases/1.4.18/)中引入,所有旧版本都工作得很快。在
在来宾或主机中使用不同的浏览器没有任何区别。请求的资源是动态的还是静态的也没有任何区别(我们在开发过程中使用静态应用程序来提供静态内容)。在
什么会导致这种行为?从发行说明中我们还不清楚。在
我真不敢相信我终于解决了这个问题。我有同样的问题,你提到它只出现在django1.4.17之后的版本中,这让我走上了正确的轨道。在
简短解决方案:将网关IP添加到来宾计算机中的/etc/hosts,例如:
详细说明:Django 1.4.18引入了对包含下划线的头的剥离。这是无害的,但是
^{pr2}$django.core.servers.basehttp.WSGIRequestHandler.get_environ
方法略有改变。从1.4.18开始,它依赖于wsgiref.simple_server.WSGIRequestHandler.get_environ
,其中包含以下行:address_string
是来自BaseHTTPServer
的方法:对getfqdn的调用是(慢)罪魁祸首:
在我将“10.0.2.2 10.0.2.2”行添加到来宾计算机中的
/etc/hosts
之后,主机名解析几乎是即时的:请注意,您的网关地址可以通过在来宾环境中运行
route -n
来找到。在相关问题 更多 >
编程相关推荐