Solución:
Sí, Django no debería publicar robots.txt si el archivo es estático. Pruebe algo como esto en su archivo de configuración de Nginx:
location /robots.txt {
alias /path/to/static/robots.txt;
}
Consulte aquí para obtener más información: http://wiki.nginx.org/HttpCoreModule#alias
Lo mismo se aplica al archivo favicon.ico si tiene uno.
El código equivalente para la configuración de Apache es:
Alias /robots.txt /path/to/static/robots.txt
Sé que esta es una respuesta tardía, estaba buscando una solución similar cuando no tengo acceso a la configuración del servidor web. Entonces, para cualquier otra persona que busque una solución similar, encontré esta página: http://www.techstricks.com/adding-robots-txt-to-your-django-project/
lo que sugiere agregar esto a la url.py de su proyecto:
from django.conf.urls import url
from django.http import HttpResponse
urlpatterns = [
#.... your project urls
url(r'^robots.txt', lambda x: HttpResponse("User-Agent: *nDisallow:", content_type="text/plain"), name="robots_file"),
]
lo cual creo que debería ser un poco más eficiente que usar un archivo de plantilla, aunque podría desordenar las reglas de su URL si necesita múltiples opciones ‘Disallow:’.