加载dynamic生成的图像时,我有一个非常奇怪的Http500错误。 由于某种原因,它只是偶尔发生。 apache错误日志不显示任何错误。 django开发服务器曾经为它们提供了很好的开发服务。
来自日志的示例:
174.255.117.79 - - [04/Feb/2013:12:00:46 -0600] "GET /images/gender/ HTTP/1.1" 500 531 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" 174.255.117.79 - - [04/Feb/2013:12:00:46 -0600] "GET /images/bodytype/ HTTP/1.1" 500 531 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" 174.255.117.79 - - [04/Feb/2013:12:00:46 -0600] "GET /images/religion/ HTTP/1.1" 200 30722 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" 174.255.117.79 - - [04/Feb/2013:12:00:46 -0600] "GET /images/smoking/ HTTP/1.1" 200 58577 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" 174.255.117.79 - - [04/Feb/2013:12:00:47 -0600] "GET /images/ethnicities/ HTTP/1.1" 500 531 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" ~
有时他们加载:
192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/gender/ HTTP/1.1" 500 531 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0" 192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/religion/ HTTP/1.1" 200 41967 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0" 192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/ethnicities/ HTTP/1.1" 200 44148 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0" 192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/bodytype/ HTTP/1.1" 200 44471 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0" 192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/smoking/ HTTP/1.1" 200 59910 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0"
这些图像是通过一个视图生成的:
(r'^images/(\w+)/$', mysite.views.show_pic)
视图使用PIL库来绘制和保存图像,如下所示:
response = HttpResponse(mimetype="image/png") img.save(response, "PNG")
所有我的静态CSS是正确的服务虽然。 有任何想法吗?
例如,分析错误的一个好方法是制作settings.py的一个副本,将其命名为“settings_test.py”。 然后,将此副本设置为DEBUG = True,并从shell运行 – 您可以使用不同于80或443的其他端口 :
python manage.py runserver 0.0.0.0:5678 --settings relative.path.to.settings_test
要么:
python django-admin.py runserver 0.0.0.0:5678 --settings relative.path.to.settings_test
然后,通过这个端口进行testing(例如:www.mydomain.com:5678/),如果发生什么事情,你会看到一个回溯。 即使是不影响主页加载的辅助GET / POST方法,也应该在Shell中看到这样的回溯。
完成后,使用Ctrl + C中断runserver的执行。