Django 开发服务器可以正确提供 SVG 服务吗?

2024-04-16

我正在尝试使用以下方法提供 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 to map.xml它正确显示图像。我认为这是因为 Django 的开发服务器(具体来说django.views.static.serve) 没有为 svg 提供正确的 mime 类型。这是问题吗?如果是,有补丁吗?


我目前没有可用的 Django 来测试这个,但看起来静态服务器使用模仿类型库 http://docs.python.org/dev/library/mimetypes.html确定内容类型(特别是guess_type())。

通过谷歌搜索,我发现了一些代码 http://moinmo.in/MacroMarket/EmbedObject您可以将其放入 settings.py 中以添加对 svg 内容类型的支持:

import mimetypes

mimetypes.add_type("image/svg+xml", ".svg", True)
mimetypes.add_type("image/svg+xml", ".svgz", True)

还有这个博客文章 http://pythonguy.wordpress.com/2008/02/06/content-type-for-pylons-static-content/特定于 Pylons,但它提到了类似的问题。他指定 MIME 类型存储在“/etc/mime.types”中,并且缺少 SVG,因为它不是官方 MIME 类型。他可能是对的,因为我在网站上找不到 SVG 的 MIME 类型IANA http://www.iana.org/assignments/media-types/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 开发服务器可以正确提供 SVG 服务吗? 的相关文章

随机推荐