2011-11-25 18 views
26

Używam małego testowego projektu z Django 1.3, Ubuntu 11.10, gunicorn i Nginx, wszystko w virtualenv, a teraz pracuję collectstatic, aby przenieść moje pliki statyczne do katalogu, z którego korzysta Nginx.Jak ignorować katalogi podczas uruchamiania kolekcji Django?

Dla uproszczenia załóżmy, że mój katalog statyczny jest coś takiego jak/home/user/statyczne i mój projekt jest w/home/user/project

Kiedy idę do/home/user/projektu biegnę:

python manage.py collectstatic --noinput 

i poprawnie kopiuje pliki statyczne ze wszystkich aplikacji, które zainstalowałem. Niestety to także kopiuje pliki od administratora Django i chciałbym go pominąć.

Sprawdziłem dokumentację dla parametru collecstatic i istnieje parametr -i (--ignore), który przyjmuje parametr globalny, więc próbowałem różnych odmian polecenia, ponieważ nie jestem pewien, czy wzór ignorowania odnosi się do do mojego/home/user/static lub do oryginalnego katalogu aplikacji.

Oto kilka przykładów, które didn't pracy:

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* 

stwierdziliśmy, że jeśli utworzyć dowiązanie symboliczne/home/user/statyczne/admin do /home/user/.virtualenvs/django13/lib /python2.7/site-packages/django/contrib/admin/media collectstatic zauważy i znowu pominie kopiowanie tych plików, ale mimo to chciałbym, aby opcja --ignore działała tak, jak powinna.

Czego mi brakuje?

Dzięki za pomoc!

+0

Mam ten sam problem, czy udało Ci się zrobić postęp? – Hanpan

Odpowiedz

27

Nie zapisuj pełnej ścieżki katalogów. Na przykład użycie:

python manage.py collectstatic --noinput -i admin 

To polecenie nie skopiuje katalogu admin/do ścieżki STATIC_ROOT.

+0

Załóżmy, że musimy zignorować pliki określonego typu, więc następująca praca: python manage.py collectstatic --noinput -i * .styl gdzie pliki, które mają być ignorowane, mają rozszerzenie .styl? – Sachin

+5

Tak. Przykład: python manage.py collectstatic --noinput -i * .sass – tatlar

+1

Jak dodać wiele ignorowanych elementów? np. zignorować wszystko z 'admin' na ścieżce * i * dowolne pliki' * .scss'? –

Powiązane problemy