/ / Django a AWS: favicon, robots.txt y mapa del sitio? - django, amazon-web-services, elastic-beanstalk, robots.txt, favicon

Django a AWS: favicon, robots.txt y sitemap? - django, amazon-web-services, elastic-beanstalk, robots.txt, favicon

He implementado un sitio web de Django en Elastic Beanstalk usando este tutorial: https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-beanstalk/

Pero no tengo idea de dónde y cómo poner un favicon.ico, un robots.txt y un sitemap.xml. ¿Algunas ideas?

Respuestas

1 para la respuesta № 1

Para que sus sitemaps funcionen, puede usar un django.contrib.sitemaps marco de referencia: documentos. O si tiene una cantidad estática de páginas, simplemente haga lo siguiente:

urlpatterns = [
# your robots.txt (and/or humans.txt) file:
url(r"^robot.txt$", TemplateView.as_view(
template_name="txt/robots.txt",
content_type="text/plain"
)),
# your static sitemap:
url(r"^crossdomain.xml$", TemplateView.as_view(
template_name="txt/sitemap.xml",
content_type="application/xml"
)),
]

Para el favicon.ico colóquelo dentro de su static carpeta y use esta etiqueta de plantilla en su plantilla:

<link rel="icon" href="{% static "path/to/favicon.ico" %}" sizes="...">

No olvides admitir todos los dispositivos: lista completa de favicons


1 para la respuesta № 2

Para el favicon.ico y sitemap.xml puedes ponerlos en el static/ directorio y consulte en la plantilla con la URL estática. P.ej.:

<link rel="shortcut icon" type="image/png" href="{{STATIC_URL}}/favicon.ico"/>

Tu robots.txt es un poco más difícil (como con cualquier aplicación django). Puedes dejarlo caer en el templates directorio y en su urls.py tener lo siguiente:

urlpatterns = patterns("",
...
(r"^robots.txt$", TemplateView.as_view(template_name="robots.txt", content_type="text/plain")),
)