如何让简易Flask网站正常返回robots.txt文件?
搞定Flask robots.txt 404错误的小技巧
嘿,我马上就发现问题啦!你的代码里有个小顺序错误——app.run()在路由定义之前就执行了,这直接导致Flask还没来得及注册/robots.txt这个路由,服务器就启动了,自然会返回404错误。
问题出在哪?
你原来的代码里,app.run(host = "0.0.0.0", port = 80)写在了@app.route("/robots.txt")和对应的函数前面。Flask的路由是在应用启动前逐个注册的,当服务器启动时,你的robots_dot_txt函数还没被关联到路由上,服务器根本不知道这个路径存在,所以访问时就会报404。
修正后的正确代码
把app.run()移到所有路由定义的后面就搞定了:
from flask import Flask app = Flask(__name__) # 先定义路由和对应的处理函数 @app.route("/robots.txt") def robots_dot_txt(): return "User-agent: *\nDisallow: /" # 最后启动服务器 app.run(host="0.0.0.0", port=80)
验证一下
重启你的Flask应用,再访问http://你的服务器地址/robots.txt,应该就能看到你定义的robots规则了。
另外提一句,如果是生产环境部署,别用app.run()直接运行,建议用Gunicorn或者uWSGI这类专业的WSGI服务器,但开发测试用上面的代码完全没问题。
内容的提问来源于stack exchange,提问作者BlandCorporation
相关产品推荐
相关产品推荐

