Tôi là một người mới làm việc Django trong dự án đầu tiên của tôi và gặp sự cố với các tệp tĩnh.Các tệp tĩnh Django sẽ không tải
Tôi đã tạo hệ thống xác thực đơn giản bằng cách sử dụng django.contrib.auth
bao gồm hai mẫu: mysite/templates/index.html
và mysite/templates/registration/login.html
. Tôi có nội dung tĩnh toàn cục theo số mysite/static
mà tôi muốn có thể truy cập trên tất cả các mẫu được hiển thị bởi tất cả các ứng dụng.
mysite/templates/index.html
chứa <img src="{{ STATIC_URL }}pics03.jpg"/>
mà ám như "static/pics03.jpg"
và tải tốt khi tôi truy cập vào url localhost:8000/
mysite/templates/registration/login.html
chứa <img src="{{ STATIC_URL }}pics03.jpg"/>
mà cũng ám như "static/pics03.jpg"
và không tải khi tôi truy cập vào url "localhost:8000/accounts/login/"
Trong url của tôi. py Tôi có:
urlpatterns = patterns('',
url(r'^$', 'mysite.views.home'), # plays index.html template
url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
Trong settings.py tôi có:
PROJECT_DIR = os.path.dirname(__file__)
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(PROJECT_DIR,'static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATIC_URL = '/static/'
STATIC_ROOT = ''
Tôi đã theo ấn tượng rằng Django nên tìm kiếm nội dung tĩnh toàn cầu trong STATICFILES_DIRS, nhưng nó không tìm thấy nội dung tĩnh cho login.html thậm chí nếu tôi thay đổi url trong đó để một đường dẫn tuyệt đối đến thư mục tĩnh. bất cứ ai có thể rụng bất kỳ ánh sáng về điều này?
có, đây là vấn đề .. cảm ơn! – JimJay
Vâng, trên thực tế trường hợp thứ hai nó là cần thiết để quấn quy tắc đó. Nếu bạn nhìn vào mã của django bạn sẽ thấy rằng khung nhìn không thực hiện bất kỳ kiểm tra nào cho DEBUG. –
Chế độ xem không bao giờ được nhấn vì máy chủ web của bạn được thiết lập để thu thập và phục vụ các tệp tĩnh, vì vậy không cần kiểm tra. – krs