2011-11-25 32 views
26

Tôi đang chạy một dự án thử nghiệm nhỏ với Django 1.3, Ubuntu 11.10, gunicorn và Nginx, mọi thứ trong virtualenv, và bây giờ tôi đang chạy tập hợp để lấy các tệp tĩnh của tôi vào thư mục mà Nginx phục vụ.Làm thế nào để bỏ qua các thư mục khi chạy Django collectstatic?

Để đơn giản giả sử thư mục tĩnh của tôi là một cái gì đó giống như/home/user/tĩnh và dự án của tôi là/home/user/dự án

Khi tôi đi đến/home/user/dự án Tôi chạy:

python manage.py collectstatic --noinput 

và sao chép chính xác các tệp tĩnh từ tất cả các ứng dụng tôi đã cài đặt. Thật không may này cũng sao chép các tập tin từ admin của Django và tôi muốn bỏ qua một trong đó.

Tôi đã kiểm tra tài liệu cho collecstatic và có tham số -i (--ignore) lấy tham số kiểu glob vì vậy tôi đã thử các biến thể khác nhau của lệnh, vì tôi không chắc liệu mẫu bỏ qua có đề cập đến không vào/home/user/static hoặc vào thư mục app gốc.

Dưới đây một số ví dụ, đã không hề làm việc:

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* 

Tôi thấy rằng nếu tôi có thể tạo một liên kết tượng trưng từ/home/user/static/admin /home/user/.virtualenvs/django13/lib /python2.7/site-packages/django/contrib/admin/media collectstatic sẽ thông báo và bỏ qua việc sao chép các tệp đó một lần nữa nhưng dù sao, tôi muốn thực hiện tùy chọn --ignore như nó cần.

Tôi đang thiếu gì?

Cảm ơn sự giúp đỡ!

+0

Tôi gặp vấn đề tương tự, bạn có quản lý để thực hiện bất kỳ tiến trình nào không? – Hanpan

Trả lời

27

Không ghi đường dẫn đầy đủ của các thư mục. Ví dụ cách sử dụng:

python manage.py collectstatic --noinput -i admin 

Lệnh này sẽ không sao chép quản trị/thư mục vào đường dẫn STATIC_ROOT.

+0

Giả sử chúng ta phải bỏ qua các tệp thuộc một loại nhất định để công việc sau python manage.py collectstatic --noinput -i * .styl nơi các tệp tôi muốn bỏ qua có phần mở rộng .styl? – Sachin

+5

Có. Ví dụ: python manage.py collectstatic --noinput -i * .sass – tatlar

+1

Tôi làm cách nào để thêm nhiều lần bỏ qua? ví dụ, bỏ qua bất cứ điều gì với 'admin' trong đường dẫn * và * bất kỳ tập tin' * .scss' nào? –

Các vấn đề liên quan