Odpowiedzi:
Jeśli używasz serwera deweloperskiego, postępuj zgodnie z instrukcją zarządzania plikami statycznymi projektu django, aby skonfigurować adresy URL, a następnie odwołaj się do plików multimedialnych w szablonie - powiedzmy, do obrazu w folderze obrazu z programu /site_media/images/foo.gif
.
Mówiąc bardziej ogólnie, pytasz, jak udostępnić plik statyczny z Django. Jeśli korzystasz z Apache, powinieneś przeczytać http://docs.djangoproject.com/en/dev/howto/deployment/modpython/
Jeśli używasz serwera deweloperskiego (powiedzmy na swoim laptopie), przeczytaj http://docs.djangoproject.com/en/dev/howto/static-files/
Zwróć uwagę na duże, grube zastrzeżenie dotyczące serwera deweloperskiego Django:
Przez jakiś czas powodowało to również problemy (404 nie znaleziono błędów). Brakującym fragmentem dla mnie była edycja STATICFILES_DIRS
krotki w settings.py, aby uzyskać to:
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('\\','/'),
)
Następnie zebrałem moje pliki CSS w folderze o nazwie „media”, który znajdował się na najwyższym poziomie mojego projektu django.
Również miałem:
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'
(upewnij się, że masz prowadzenie /
powyżej wSTATIC_URL
)
Oczywiście, jak wspomniano powyżej, musisz mieć poprawnie dołączony plik CSS z plików html. Miałem:
<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
.replace('\\','/')
jest niepotrzebne.
Jakie ustawienia muszę zrobić, aby Django zobaczyło plik css?
Żaden.
Upewnij się, że szablon zawiera plik CSS (tak jak robi to standardowy HTML) i umieść plik CSS na serwerze multimediów.
Dla wyjaśnienia: w przypadku Django jest wysoce zalecane, abyś udostępniał wszystkie swoje media (wszystko, co nie jest dynamicznym html) z innej instancji serwera. Sposób implementacji zależy wyłącznie od Ciebie, ale większość ludzi tworzy subdomenę.
Oficjalne dokumenty django nie pomogły mi. Mam nadzieję, że post na blogu „ Django: Jak obsługiwać pliki statyczne ” pomoże niektórym z was.
Cóż, najłatwiejszym sposobem użycia css z django jest dodanie go do szablonów jako plików statycznych.
Ale to trochę jak Ajax, nie znalazłem nic, co mówi, jak to włączyć w standardowy sposób.
Istnieje moduł kompresora css dla django, jeśli chcesz zoptymalizować jego rozmiar.