Я решил обе проблемы (favicon.ico, robots.txt) в url.py, но с некоторыми отличиями.
Мне не нравится решение, которое, во-первых, можно подумать, чтобы сделать представление выполнением render_to_response.
РЕДАКТИРОВАТЬ : В Django 1.5 Direct_to_template и redirect_to устарели, так что теперь вы можете использовать представления на основе классов.
Для Django 1,5 :
Для файла robots.txt добавьте следующую строку в ваши urlpatterns:
from django.views.generic.base import RedirectView, TemplateView
(r'^robots\.txt$', TemplateView.as_view(template_name="robots.txt",
content_type='text/plain')),
Я использую универсальное представление класса TemplateView и указываю используемый шаблон (robots.txt, который должен находиться в каталоге шаблонов), а также mimetype.
Для favicon.ico добавьте следующую строку в ваши urlpatterns:
(r'^favicon\.ico$', RedirectView.as_view(
url=settings.STATIC_URL + 'img/favicon.ico')),
Это перенаправляет /favicon.ico в STATIC_URL + img / favicon.ico (например, /static/img/favicon.ico)
favicon.ico должен быть в вашем статическом каталоге.
Эти подходы могут быть использованы для любого медиа или html-контента.
Для предыдущих версий Django вы можете использовать :
(r'^robots\.txt$', direct_to_template, {'template': 'robots.txt',
'mimetype': 'text/plain'}),
(r'^favicon\.ico$', redirect_to,
{'url': settings.STATIC_URL + 'img/favicon.ico'}),