在一般的web server中,对于请求和返回的文件名,会根据它的文件名后缀猜测它对应的mimetype类型。那么在 中提供了mimetypes 这个模块,可以做这件事。在导入这个模块后,它自动会装入几个可能有mimetype的文件,但看了看程序,全部都是下的,如:
knownfiles = [
"/etc/mime.types",
"/usr/local/etc/httpd/conf/mime.types",
"/usr/local/lib/netscape/mime.types",
"/usr/local/etc/httpd/conf/mime.types", # Apache 1.2
"/usr/local/etc/mime.types", # Apache 1.3
]
当然在下,这些文件名就不可能找到了。在这个时候,mimetypes会缺省设置一些扩展名对应的mimetype,当然也就不全了。
这不我在中测试就发现了问题,如果我请求favicon.ico,它就会报错。如果你是windows平台,你可以在idle或 NewEdit 中试一下:
>>> import mimetypes
>>> mimetypes.guess_type('favicon.ico')
(None, None)
看到了吧,根本找不到。那么在Karrigell就会报错。但通过修改Karrigell的配置文件可以解决这个问题。只要如下修改:
[Applications]
ico=image/x-icon
这样就行了