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