/ / Django para AWS: favicon, robots.txt e sitemap? - django, amazon-web-services, elastic-beanstalk, robots.txt, favicon

Django para AWS: favicon, robots.txt e sitemap? - Django, amazon-web-services, pé de feijão elástico, robots.txt, favicon

Implantei um site do Django no Elastic Beanstalk usando este tutorial: https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-beanstalk/

Mas não faço ideia de onde e como colocar um favicon.ico, um robots.txt e um sitemap.xml. Alguma ideia?

Respostas:

1 para resposta № 1

Para que seus sitemaps funcionem, você pode usar um django.contrib.sitemaps estrutura: docs. Ou se você tem uma quantidade estática de páginas, faça o seguinte:

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 o favicon.ico coloque-o dentro do seu static pasta e use esta tag de modelo no seu modelo:

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

Não se esqueça de oferecer suporte a todos os dispositivos: lista completa de favicons


1 para resposta № 2

Para o favicon.ico e sitemap.xml você pode colocá-los no static/ diretório e consulte-os no modelo com a URL estática. Por exemplo.:

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

Seu robots.txt é um pouco mais difícil (como em qualquer aplicativo django). Você pode soltá-lo no templates diretório e no seu urls.py tem o seguinte:

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