2011-11-25 31 views
26

Sto eseguendo un piccolo progetto di test con Django 1.3, Ubuntu 11.10, gunicorn e Nginx, tutto in un virtualenv, e ora sto eseguendo collectstatic per ottenere i miei file statici nella directory da cui Nginx serve.Come ignorare le directory durante l'esecuzione di Django collectstatic?

Per semplicità diciamo che la mia directory statica è qualcosa come/home/utente/static e il mio progetto è a/home/user/project

Quando vado a/home/user/project corro:

python manage.py collectstatic --noinput 

e copia correttamente i file statici da tutte le app che ho installato. Sfortunatamente anche questo copia i file dall'amministratore di Django e vorrei saltarlo.

Ho controllato la documentazione per il collecstatic e c'è un parametro -i (--ignore) che accetta un parametro glob-style, quindi ho provato diverse varianti del comando, poiché non sono sicuro che il pattern ignore si riferisca al mio/home/utente/statico o alla directory dell'app originale.

Ecco alcuni esempi che non ha funzionato:

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* 

ho scoperto che se creo un link simbolico da/home/utente/static/admin per /home/user/.virtualenvs/django13/lib /python2.7/site-packages/django/contrib/admin/media collectstatic noterà e salterà la copia di questi file, ma comunque, mi piacerebbe fare in modo che l'opzione --ignore funzioni come dovrebbe.

Cosa mi manca?

Grazie per l'aiuto!

+0

Ho lo stesso problema, sei riuscito a fare qualche progresso? – Hanpan

risposta

27

Non scrivere il percorso completo delle directory. Ad esempio di utilizzo:

python manage.py collectstatic --noinput -i admin 

Questo comando non copierà l'admin/directory STATIC_ROOT percorso.

+0

Supponiamo di dover ignorare i file di un certo tipo, quindi il lavoro seguente è python manage.py collectstatic --noinput -i * .styl dove i file che voglio ignorare hanno estensione .styl? – Sachin

+5

Sì. Esempio: python manage.py collectstatic --noinput -i * .sass – tatlar

+1

Come aggiungere più Ignora? ad esempio, ignora qualsiasi cosa con 'admin' nel percorso * e * qualsiasi file' * .scss'? –

Problemi correlati