10

我想用 Flask 提供一个静态 SVG 文件,但是 SVG 文件是在没有Content-Type标题的情况下传输的。正确的 mime 类型是image/svg+xml. 如何确保 Flask 对 SVG 文件使用正确的 mime 类型并将其发送到浏览器?

我将文件称为/static/python.svg,它确实存在。

我在我的__init__.py文件中尝试了这个,但没有任何区别:

import mimetypes

mimetypes.add_type('images/svg+xml', '.svg')
4

2 回答 2

10

您的 mime 类型有误。正确的是image/svg+xml(注意缺少's')。

import mimetypes

mimetypes.add_type('image/svg+xml', '.svg')
#                        ^ no s
于 2012-07-15T20:35:24.043 回答
2

一个简单(但很老套)的方法是为 svgs 添加一条新路由:

@app.route('/static/<svgFile>.svg')
def serve_content(svgFile):
    return file('static/'+svgFile+'.svg').read()
于 2015-07-30T09:05:17.793 回答