J'ai lu sur le calme quelques endroits que les fichiers statiques servant de serveurs devraient être laissés au serveur, par exemple dans quelques-unes des réponses sur ce SO question. Mais j'utilise OpenShift PaaS, et je n'arrive pas à comprendre comment modifier le fichier .htaccess.Avec Flask, comment puis-je servir robots.txt et sitemap.xml en tant que fichiers statiques?
Je suis tombé sur ce piece of code qui sert le sitemap à partir d'un modèle. Je l'ai fait sur mon application tant pour le plan du site, et robots.txt, comme si -
@app.route("/sitemap.xml")
def sitemap_xml():
response= make_response(render_template("sitemap.xml"))
response.headers['Content-Type'] = 'application/xml'
return response
@app.route("/robots.txt")
def robots_txt():
return render_template("robots.txt")
Y at-il de mal à cela, ou est mon approche d'accord?
merci, à peu près ce que je cherchais. – elssar
Merci - cela fera pour les applications Flask sur Heroku. Il semble quasiment impossible de faire en sorte que le routeur de Heroku (basé sur Nginx) serve directement du contenu statique, sauf s'il se trouve dans le répertoire 'static' ou' public' d'un projet. Je préférerais, bien sûr, servir directement 'robots.txt' et' sitemap.xml' avec Nginx, dans des environnements qui me permettent de le faire. – Jaza
Correction à mon commentaire ci-dessus: semble que Heroku n'utilise pas du tout Nginx, il passe réellement toutes les demandes (y compris les demandes au dossier static ou public) directement à un processus d'application (par exemple directement à Gunicorn pour un Application Python), uniquement via un proxy/load-balancer personnalisé appelé Vegur - voir: http://superuser.com/questions/837925/what-is-vegur-appearing-in-http-headers – Jaza