如何使用Flask提供静态SVG文件?

时间:2012-07-15 19:11:31

标签: python mime-types flask

我想使用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')

2 个答案:

答案 0 :(得分:8)

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

import mimetypes

mimetypes.add_type('image/svg+xml', '.svg')
#                        ^ no s

答案 1 :(得分:1)

一种简单(但很笨拙)的方法是为svgs添加新路由:

@app.route('/static/<svgFile>.svg')
def serve_content(svgFile):
    return file('static/'+svgFile+'.svg').read()