python 2.5.2 Windows的安装包安装的,在用web.py 0.23,调试的时候当然只用自带的调试web server,其实就是SimpleHTTPServer.py,发现一个怪问题,打开所有页面都有10秒的延迟,浏览器的进度条一直不结束,10秒后才在状态栏上显示完成!终于发现/static/css/下的所有css都下载很慢,但是在cygwin python 2.5.1下,这个问题就没有,linux下的python 2.5.1下也没有问题。查了一下http响应的header,发现Content-Length不对,header报的length比实际的文件字节数大!导致浏览器还在等待实际已经不存在的数据。
很偶然的,从其他项目copy一个css文件过来测试,发现这个文件没有长度不对的问题,对比一下,发现这个文件是Unix格式的lf换行符,再随便改了一个css文件的换行格式,发现长度问题也没有了。
看来真是不能对python提供的库有过高的期望,google一下,看到了这个,[url]http://bugs.python.org/issue839496[/url],居然修了5年,再看看讨论的历史记录,觉得配置管理真的很重要啊!浪费了我3、4个小时。
找到Python\Lib\SimpleHTTPServer.py,我的安装版本在83行,自己改一下。
应该所有的使用SimpleHTTPServer的程序都有同样的“小”问题,还是不要浪费大家的时间的好。
很偶然的,从其他项目copy一个css文件过来测试,发现这个文件没有长度不对的问题,对比一下,发现这个文件是Unix格式的lf换行符,再随便改了一个css文件的换行格式,发现长度问题也没有了。
看来真是不能对python提供的库有过高的期望,google一下,看到了这个,[url]http://bugs.python.org/issue839496[/url],居然修了5年,再看看讨论的历史记录,觉得配置管理真的很重要啊!浪费了我3、4个小时。
找到Python\Lib\SimpleHTTPServer.py,我的安装版本在83行,自己改一下。
ctype = self.guess_type(path)
#if ctype.startswith('text/'):
# mode = 'r'
#else:
# mode = 'rb'
try:
# patched on 28 July, 2008 by Steve
#f = open(path, mode)
f = open(path, 'rb')
except IOError:
self.send_error(404, "File not found")
return None
应该所有的使用SimpleHTTPServer的程序都有同样的“小”问题,还是不要浪费大家的时间的好。