Ho letto in silenzio alcuni posti in cui i file statici devono essere lasciati al server, ad esempio in un paio delle risposte su questo SO question. Ma io uso OpenShift PaaS e non riesco a capire come modificare il file .htaccess lì.Con Flask, come posso fornire robots.txt e sitemap.xml come file statici?
Mi sono imbattuto in questo piece of code che serve la mappa del sito da un modello. L'ho fatto sulla mia app sia per la mappa del sito, e il file robots.txt, in questo modo -
@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")
C'è di male in questo, o è il mio approccio va bene?
grazie, praticamente quello che stavo cercando. – elssar
Grazie - lo farà per le app Flask su Heroku. Sembra quasi impossibile ottenere il router di Heroku (basato su Nginx) per servire direttamente il contenuto statico, a meno che non si trovi nella directory 'static' o' public' di un progetto. Preferiremmo, ovviamente, servire 'robots.txt' e' sitemap.xml' direttamente con Nginx, in ambienti che mi permettessero di farlo. – Jaza
Correzione al commento precedente: sembra che Heroku non usi affatto Nginx, in realtà passa tutte le richieste (comprese le richieste alla 'static' o alla' public' dir) direttamente a un processo dell'app (ad esempio direttamente a Gunicorn per un tipico App Python), passando solo tramite un proxy/bilanciamento del carico personalizzato chiamato Vegur - vedi: http://superuser.com/questions/837925/what-is-vegur-appearing-in-http-headers – Jaza