La parte más importante de la pregunta está en el tema.
Me pregunto qué etiqueta es mejor para cada caso. Además ... encontré código, que también uso settings.STATIC_URLincluido {{STATIC_URL}}en las plantillas.
Estoy un poco confundido.
                    
                        django
                                django-templates
                                
                    
                    
                        trikoder_beta
fuente
                
                fuente

Respuestas:
La
staticetiqueta de plantilla incorporada "enlace [s] a archivos estáticos que se guardan enSTATIC_ROOT".La etiqueta de plantilla de
staticfilesla aplicación contribstatic"usa elSTATICFILES_STORAGEalmacenamiento configurado para crear la URL completa para la ruta relativa dada", lo cual es "especialmente útil cuando se usa un backend de almacenamiento no local para implementar archivos".La
staticdocumentación de la etiqueta de plantilla incorporada (vinculada a la anterior) tiene una nota que dice que use la etiqueta de plantilla destaticfilesla aplicación contribstatic"si tiene un caso de uso avanzado, como usar un servicio en la nube para entregar archivos estáticos", y da este ejemplo de haciéndolo:Podría usar en
{% load staticfiles %}lugar de{% load static from staticfiles %}si lo desea, pero este último es más explícito.fuente
{% load static %}. "En versiones anteriores, tenías que usar{% load static from staticfiles %}en tu plantilla para entregar archivos desde el almacenamiento definido en STATICFILES_STORAGE. Esto ya no es necesario".{% load static %}.No sé cuál se supone que es la diferencia, pero encontré una diferencia de caso de uso (usando django 1.9.1 ejecutándose a través de apache, wsgi en Python 3.4). En mi aplicación, tengo algunas imágenes
ImageFieldsen la base de datos. Si uso un código como este en mi plantilla:entonces, si lo uso
{% load static %}, django lanza unTypeError(Cannot mix str and non-str arguments). Esto se debe presumiblemente a queobject.imageno es una cadena, es unaImageField, que se convierte en una cadena en una etapa posterior. Sin embargo, si se utiliza{% load staticfiles %}no se produce tal error.Desafortunadamente, descubrí esta diferencia después de pasar horas tratando de depurar el problema. Me las arreglé para encontrar una solución al usar la primera opción, es decir, agregar un método de conversión de cadenas al objeto de esta manera:
Espero que este conocimiento sea de utilidad para alguien.
fuente
La documentación de Django prefiere ahora
{% load static %}.{% load staticfiles %}funciona pero creo que está en desuso.https://docs.djangoproject.com/en/dev/ref/templates/builtins/#static
fuente
Consulte los documentos , donde hay una buena explicación. En realidad, la
{% static %}etiqueta de la plantilla conoce la ubicación de STATICFILE_STORAGEComo dicen los doctores:
¡¡Espero que ayude!!
fuente
{% load static %},{% load staticfiles %},{{STATIC_URL}}... y sé que no sé cuál es la diferencia entre{% load static %}e{% load static from staticfiles %}{% load staticfiles %}es muy útil cuando utiliza diferentes almacenamientos como S3, luego se convertirá en las URL de S3fuente