You can register additional routes to serve files from your static folder:
from flask import app, safe_join, send_from_directory
@app.route('/<any(css, img, js, sound):folder>/<path:filename>')
def toplevel_static(folder, filename):
filename = safe_join(folder, filename)
cache_timeout = app.get_send_file_max_age(filename)
return send_from_directory(app.static_folder, filename,
cache_timeout=cache_timeout)
@app.route('/<path:htmlfile>.html')
def toplevel_static(htmlfile):
filename = htmlfile + '.html'
cache_timeout = app.get_send_file_max_age(filename)
return send_from_directory(app.template_folder, filename,
cache_timeout=cache_timeout)
This replicates what the static
view does, but for routes starting with /css/
, /img/
, /js/
or /sound/
instead. HTML files are loaded from your template folder instead.