2012-02-29 11 views
5

Tengo una pregunta muy simple que no pude encontrar. Utilizando la aplicación Django staticfiles, llamo a la rutina de recogida de estadísticas al escribir esta línea de comando: python manage.py collectstatic.¿Cómo decirle a los archivos estáticos de Django que no recojan los archivos del directorio de medios cargados por el usuario?

Mi problema es que tengo varias aplicaciones que sirven statics + a directorio de medios que contiene archivos cargados por el usuario. ¡Django copia todos los archivos en el directorio estático, incluidos los archivos multimedia!

Simplemente me gustaría que Django no copie los archivos cargados por el usuario en el directorio estático cuando llamo al python manage.py collectstatic. ¿Alguien tiene alguna idea? Intentó la opción --ignore pero sin éxito ...

Gracias de antemano.

+1

agregue las configuraciones de statisfiles aquí, por favor – histrio

+0

¿El usuario está moviendo los medios cargados a MEDIA_ROOT (donde pertenecen) una opción? – Tony

+0

De hecho, los archivos se cargan por usuario a MEDIA_ROOT. Todo está bien y puedo usarlos en mis plantillas. El problema es que collecticstatics copia 'MEDIA_ROOT/*' a 'STATIC_ROOT'. Así que tengo miedo de que termine de sobrecargar mi servidor al duplicar cada archivo subido por el usuario ... – user650108

Respuesta

0

Entonces, ¿qué exactamente no funciona si usa --ignore?

Aunque la solución real no es mezclar el contenido generado por el usuario y los archivos estáticos.

Si mantiene ambos tipos separados, puede poner fácilmente sus archivos estáticos bajo control de versión y no tiene que lidiar con las exclusiones en este frente también. Y de hecho, la separación de los medios de comunicación (generado por el usuario) y los archivos estáticos es la razón de ser de staticfiles:

En las versiones anteriores de Django, era común para colocar activos estáticos en MEDIA_ROOT junto con los archivos subidos por los usuarios, y sírvales a ambos al MEDIA_URL. Parte del objetivo de la aplicación de archivos estáticos es para que sea más fácil mantener los archivos estáticos separados de los archivos cargados por el usuario.

La documentación sobre este tema son realmente completa: https://docs.djangoproject.com/en/dev/howto/static-files/

6

Eso era un problema de django.contrib.staticfiles.finders.DefaultStorageFinder, intente quitar que desde STATICFILES_FINDERS.

Cuestiones relacionadas