Static files in Flask - robot.txt, sitemap.xml (mod_wsgi)

前端 未结 10 592
后悔当初
后悔当初 2020-11-29 15:15

Is there any clever solution to store static files in Flask\'s application root directory. robots.txt and sitemap.xml are expected to be found in /, so my idea was to create

10条回答
  •  借酒劲吻你
    2020-11-29 16:01

    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:

提交回复
热议问题