Static files in Flask - robot.txt, sitemap.xml (mod_wsgi)
The cleanest answer to this question is the answer to this (identical) question:
from flask import Flask, request, send_from_directory
app = Flask(__name__, static_folder='static')
@app.route('/robots.txt')
@app.route('/sitemap.xml')
def static_from_root():
return send_from_directory(app.static_folder, request.path[1:])
To summarize:
- as David pointed out, with the right config it's ok to serve a few static files through prod
- looking for /robots.txt shouldn't result in a redirect to /static/robots.txt. (In Seans answer it's not immediately clear how that's achieved.)
- it's not clean to add static files into the app root folder
- finally, the proposed solution looks much cleaner than the adding middleware approach:
The best way is to set static_url_path to root url
from flask import Flask
app = Flask(__name__, static_folder='static', static_url_path='')