Tôi bối rối static root
và muốn làm rõ mọi thứ.
Để phục vụ các tệp tĩnh trong Django, cần có các mục sau settings.py
và urls.py
:
import os
PROJECT_DIR=os.path.dirname(__file__)
1. Đường dẫn tuyệt đối đến thư mục chứa tập tin tĩnh
STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')
2. Tiền tố URL cho các tệp tĩnh
STATIC_URL = '/static/'
3. Vị trí bổ sung cho các tệp tĩnh
STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)
... và trong urls.py
các dòng sau:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
))
4. Chúng tôi cũng sử dụng python manage.py collectstatic
Câu hỏi:
Bất cứ ai có thể vui lòng giải thích quy trình làm việc cho tôi: làm thế nào mọi thứ lý tưởng nên được thực hiện. Đến bây giờ, tôi sao chép / dán đoạn mã trên vào các vị trí được chỉ định của chúng và tiếp tục tạo các tệp mới trong thư mục tĩnh và nó hoạt động. Trong tôi
settings.STATIC_ROOT
, tuy nhiên, tôi đã chỉ đến một thư mục khác.Sẽ thật tuyệt nếu ai đó có thể giải thích quy trình làm việc của từng cài đặt: cách các tệp được thu thập và quản lý và điều gì sẽ là một cách thực hành tốt để làm theo.
Cảm ơn.
if settings.DEBUG:
django không tốt trong việc phục vụ phương tiện tĩnh, điều này nên được để lại cho một máy chủ web thực sự.