How to add robot.txt when using nginx, flask and uwsgi?

After getting flask running with nginx and uwsgi with the help of this eminent community, and with the guide found here

I am confused since I can not understand how to add robot.txt to a site running flask. Robot.txt is a static file, but how to configure to be able to run flask with robots.txt?

If I am not misstaken shouldn’t nginx handle static files and robot.txt in production? How? Any guide toward correct answer is more than appreciated.

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

I ran into this issue and was trying to make it work with static directories that were loading from a blueprint.

This solution works well for me because it shows how to modify headers and control the response more granularly for a variety of scenarios.

from flask import Flask, Response
app = Flask(__name__)

def noindex():
    r = Response(response="User-Agent: *\nDisallow: /\n", status=200, mimetype="text/plain")
    r.headers["Content-Type"] = "text/plain; charset=utf-8"
    return r



NGINX will serve pretty much anything you configure it to – whether static or dynamic.

Generally, you want to place the robots.txt file in the web root where you’re serving your app, but flask seems to work a little differently, so you’d most likely need to place in the root that you’ve set for your static file path.

You may want to check the following to see if it can help you to get things setup: