我正在尝试使用以下方式提供SVG地图:
<object data="map.svg" type="image/svg+xml" width="400" height="300"> <embed src="map.svg" type="image/svg+xml" width="400" height="300" /> </object>
在Firefox中,这会导致插件提示。如果我重命名地图。svg映射。xml,它可以正确显示图像。我认为这是因为Django的开发服务器(特别是django.views.static.serve)没有为svg提供正确的mime类型。这是问题吗?如果是,是否有补丁?
我目前没有可用的Django来进行测试,但看起来静态服务器使用mimetypes库来确定内容类型(特别是guess_type())。
稍作搜索,我遇到了一些代码,你可能会在你的settings.py中添加一些代码,以添加对svg内容类型的支持:
import mimetypes mimetypes.add_type("image/svg+xml", ".svg", True) mimetypes.add_type("image/svg+xml", ".svgz", True)
也有专门针对Pylons的博客文章,但其中提到了类似的问题。他指定MIME类型存储在“ /etc/mime.types”中,并且缺少SVG,因为它不是官方的MIME类型。他可能是对的,因为在IANA上的任何地方都找不到SVG的MIME类型。