Câu trả lời:
Nếu bạn đang sử dụng máy chủ phát triển, hãy làm theo hướng dẫn cách quản lý tệp tĩnh của dự án django để thiết lập URL của bạn, sau đó tham chiếu đến bạn các tệp phương tiện trong mẫu - ví dụ, một hình ảnh bên trong một thư mục hình ảnh /site_media/images/foo.gif
.
Nói một cách tổng quát hơn, bạn đang hỏi cách phân phát tệp tĩnh từ Django. Nếu bạn đang chạy trong Apache, bạn nên đọc http://docs.djangoproject.com/en/dev/howto/deployment/modpython/
Nếu bạn đang chạy máy chủ phát triển (giả sử trên máy tính xách tay của bạn), hãy đọc http://docs.djangoproject.com/en/dev/howto/static-files/
Hãy lưu ý tuyên bố từ chối trách nhiệm lớn, quan trọng liên quan đến máy chủ phát triển Django:
Điều này cũng gây ra cho tôi vấn đề trong một thời gian (404 không tìm thấy lỗi). Phần còn thiếu đối với tôi là chỉnh sửa STATICFILES_DIRS
tuple trong settings.py để cung cấp cho tôi điều này:
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)
Sau đó, thao tác này đã chọn các tệp CSS của tôi trong một thư mục có tên là 'media' ở cấp cao nhất trong dự án django của tôi.
Tôi cũng đã có:
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'
(hãy đảm bảo rằng bạn đã dẫn đầu /
ở trên trongSTATIC_URL
)
Tất nhiên, như đã nói ở trên, bạn cần có tệp CSS được đưa vào đúng cách từ các tệp html của mình. Tôi đã có:
<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
.replace('\\','/')
là không cần thiết.
Tôi cần làm những cài đặt nào để Django nhìn thấy tệp css?
Không ai.
Đảm bảo rằng mẫu của bạn bao gồm tệp CSS (như HTML tiêu chuẩn) và đặt tệp CSS trên máy chủ phương tiện.
Để làm rõ: Với Django, bạn nên phân phát tất cả phương tiện của mình (mọi thứ không phải là html động) từ một phiên bản máy chủ khác. Bạn triển khai như thế nào là hoàn toàn tùy thuộc vào bạn nhưng hầu hết mọi người đều tạo miền phụ.
Các tài liệu django chính thức đã không giúp tôi. Hy vọng bài blog " Django: Cách phục vụ tệp tĩnh " sẽ giúp ích được phần nào cho các bạn.
Cách đơn giản nhất để sử dụng css với django là thêm nó vào các mẫu của bạn dưới dạng tệp tĩnh.
Nhưng nó hơi giống ajax, tôi không tìm thấy bất cứ điều gì hướng dẫn cách đưa nó vào một cách tiêu chuẩn.
Có một mô-đun máy nén css cho django nếu bạn muốn tối ưu hóa kích thước của nó.