2012-02-29 19 views
5

Tôi có một câu hỏi rất đơn giản mà tôi không thể tìm thấy câu trả lời. Sử dụng ứng dụng tĩnh Django, tôi gọi statics thường xuyên thu thập bằng cách gõ dòng lệnh sau: python manage.py collectstatic.Làm cách nào để báo cho các tệp tĩnh của Django không thu thập tệp thư mục phương tiện đã tải lên của người dùng?

Vấn đề của tôi là tôi đã có một số ứng dụng phân phối thống kê + một thư mục phương tiện chứa các tệp do người dùng tải lên. Django sao chép tất cả các tập tin vào thư mục tĩnh, bao gồm cả các tập tin media!

Tôi chỉ muốn Django không sao chép tệp do người dùng tải lên vào thư mục tĩnh khi tôi gọi python manage.py collectstatic. Có ai có ý tưởng gì không? Đã thử tùy chọn --ignore nhưng không thành công ...

Cảm ơn bạn trước.

+1

thêm cài đặt mức độ phản hồi ở đây, vui lòng – histrio

+0

Chuyển phương tiện đã tải lên của người dùng sang MEDIA_ROOT (nơi họ thuộc về) một tùy chọn? – Tony

+0

Thực tế, các tệp được người dùng tải lên MEDIA_ROOT. Mọi thứ đều ổn và tôi có thể sử dụng chúng trong các mẫu của tôi. Vấn đề là bản sao thu thập 'MEDIA_ROOT/* 'thành' STATIC_ROOT'. Vì vậy, tôi e rằng nó sẽ kết thúc quá tải máy chủ của tôi bằng cách sao chép từng tệp do người dùng tải lên ... – user650108

Trả lời

0

Vậy chính xác điều gì không hiệu quả nếu bạn sử dụng --ignore?

Mặc dù giải pháp thực sự không phải là kết hợp nội dung do người dùng tạo và tệp tĩnh.

Nếu bạn giữ cả hai loại được tách riêng, bạn có thể dễ dàng đặt các tệp tĩnh của mình trong điều khiển phiên bản và không phải đối phó với loại trừ trên mặt trước này. Và trên thực tế việc tách từ phương tiện truyền thông (người sử dụng tạo ra) và các tập tin tĩnh là lý do đằng sau staticfiles:

Trong các phiên bản trước của Django, nó đã được phổ biến để đặt tài sản tĩnh trong MEDIA_ROOT cùng với các tập tin người dùng tải lên, và phục vụ cả hai tại số MEDIA_URL. Một phần của mục đích giới thiệu ứng dụng tĩnh là để giúp giữ các tệp tĩnh tách biệt với các tệp do người dùng tải lên.

Các tài liệu về chủ đề này là thực sự toàn diện: https://docs.djangoproject.com/en/dev/howto/static-files/

6

Đó là một vấn đề của django.contrib.staticfiles.finders.DefaultStorageFinder, hãy thử gỡ bỏ mà từ STATICFILES_FINDERS.

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