Jestem nowicjuszem Django pracującym przy moim pierwszym projekcie i mającym problem z plikami statycznymi.Pliki statyczne Django nie ładują się
Stworzyłem prosty system autoryzacji, używając django.contrib.auth
składający się z dwóch szablonów: mysite/templates/index.html
i mysite/templates/registration/login.html
. Mam globalną statyczną zawartość w mysite/static
, którą chcę mieć dostęp do wszystkich szablonów renderowanych przez wszystkie aplikacje.
mysite/templates/index.html
zawiera <img src="{{ STATIC_URL }}pics03.jpg"/>
który renderuje jako "static/pics03.jpg"
i ładunki w porządku, kiedy odwiedzam adres URL localhost:8000/
mysite/templates/registration/login.html
zawiera <img src="{{ STATIC_URL }}pics03.jpg"/>
co również świadczy jak "static/pics03.jpg"
i nie ładuje się, kiedy odwiedzam adres URL "localhost:8000/accounts/login/"
W moim adresy URL. py Mam:
urlpatterns = patterns('',
url(r'^$', 'mysite.views.home'), # plays index.html template
url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
W moim settings.py mam:
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 = ''
Byłem pod wrażeniem, że Django należy szukać w globalnej zawartości statycznej STATICFILES_DIRS, ale nie znaleźliśmy statyczną treść login.html nawet jeśli zmienię adres URL w tam bezwzględną ścieżkę do folder statyczny. Czy ktoś może rzucić jakieś światło na ten temat?
tak, to był problem .. dzięki! – JimJay
Cóż, właściwie w tym drugim przypadku konieczne jest zawinięcie tej reguły. Jeśli spojrzysz na kod Django, zobaczysz, że widok nie sprawdza żadnej opcji DEBUG. –
Widok nigdy nie jest trafiony, ponieważ serwer internetowy jest skonfigurowany tak, aby przechwytywać te i wyświetlać pliki statyczne, więc nie trzeba sprawdzać. – krs