2012-07-15 11 views
9

Quiero servir un archivo SVG estático con Flask, pero el archivo SVG se transfiere sin un encabezado Content-Type. El tipo de mime correcto es image/svg+xml. ¿Cómo puedo asegurarme de que Flask usa el tipo de mime correcto para el archivo SVG y lo envía al navegador?¿Cómo sirvo un archivo SVG estático con Flask?

Me refiero al archivo como /static/python.svg, y existe.

He intentado esto en mi archivo __init__.py, pero no hace ninguna diferencia:

import mimetypes 

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

Respuesta

6

Hay un error en su tipo MIME. El correcto es image/svg+xml (tenga en cuenta la falta de 's').

import mimetypes 

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

Gracias compañero! –

1

Una manera fácil (pero hacky) es añadir una nueva ruta sólo para svgs:

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