2011-11-25 14 views
26

Estoy ejecutando un pequeño proyecto de prueba con Django 1.3, Ubuntu 11.10, gunicorn y Nginx, todo en un virtualenv, y ahora estoy ejecutando collectstatic para obtener mis archivos estáticos en el directorio al que sirve Nginx.¿Cómo se ignoran los directorios cuando se ejecuta Django collectstatic?

Para simplificar digamos que mi directorio estático es algo así como/home/usuario/estática y mi proyecto se encuentra en/proyecto home/usuario/

Cuando voy a/home/usuario/proyecto corro:

python manage.py collectstatic --noinput 

y copia correctamente los archivos estáticos de todas las aplicaciones que he instalado. Desafortunadamente, esto también copia los archivos del administrador de Django y me gustaría omitir ese.

Revisé la documentación para collecstatic y hay un parámetro -i (--ignore) que toma un parámetro glob-style así que probé diferentes variaciones del comando, ya que no estoy seguro de si el patrón de ignorar se refiere a mi/home/usuario/estático o al directorio de la aplicación original.

Aquí algunos ejemplos que Dejase't trabajo:

python manage.py collectstatic --noinput -i /home/user/static/admin 
python manage.py collectstatic --noinput -i /home/user/static/admin/* 
python manage.py collectstatic --noinput -i /home/user/static/a* 
python manage.py collectstatic --noinput -i /home/alexis/.virtualenvs/django13/* 
python manage.py collectstatic --noinput -i /home/user/.virtualenvs/django13/lib/python2.7/site-packages/django/contrib/admin* 

He descubierto que si puedo crear un enlace simbólico desde/home/usuario/estática/admin a /home/user/.virtualenvs/django13/lib /python2.7/site-packages/django/contrib/admin/media collectstatic notará y saltará la copia de esos archivos nuevamente, pero de todos modos, me gustaría que la opción --ignore funcione como debería.

¿Qué me estoy perdiendo?

¡Gracias por la ayuda!

+0

Estoy teniendo el mismo problema, ¿lograron hacer algún progreso? – Hanpan

Respuesta

27

No escriba la ruta completa de los directorios. Por ejemplo el uso de:

python manage.py collectstatic --noinput -i admin 

Este comando no copiará el administrador/directorio para STATIC_ROOT camino.

+0

Supongamos que tenemos que ignorar los archivos de un cierto tipo, por lo que el siguiente trabajo python manage.py collectstatic --noinput -i * .styl donde los archivos que deseo ignorar tienen extensión .styl? – Sachin

+5

Sí. Ejemplo: python manage.py collectstatic --noinput -i * .sass – tatlar

+1

¿Cómo agregaría varios ignores? por ejemplo, ignorar cualquier cosa con 'admin' en la ruta * y * cualquier archivo' * .scss'? –

Cuestiones relacionadas