Flask has built in support for serving static files.
Make a /static
directory and put your files there. Then, when you instantiate Flask
, specify the static_url_path
parameter:
app = Flask(__name__, static_url_path='/')
The default is to serve static files from the /static/
path, but you want them served from /
so they are where expected.
See the Flask API Docs for more info.
In addition to overhead and unnecessary code, the problem with your approach is if / when one of the files you want to serve contains something that looks like a template tag to render_template
-- you can cause a rendering error. If you were to read the file into memory (once, not inside the method) then use that string as the body of the response without calling render_template
, you would at least avoid that problem.