Mam problem z konfigurowaniem Apache'a do obsługi statycznych plików Django. Jestem na współdzielonym hoście i nie mam dostępu do plików konfiguracyjnych Apache. Wszystkie przykłady używają Alias
w plikach konfiguracyjnych Apache, więc próbuję dowiedzieć się, jak to zrobić za pomocą mod_rewrite w. Htaccess.Konfigurowanie htaccess do wyświetlania statycznych plików django
Moje setup.py wygląda następująco:
STATIC_ROOT = '/home2/usr/public_html/mydjangoproject/static'
STATIC_URL = '/static/'
Pobiegłem python manage.py collectstatic
w terminalu i to nie jego rzecz, tak że teraz mam folder pod /public_html/mydjangoproject/static
który obecnie ma podfolder admin
i jego zadowolony.
Teraz Próbuję skonfigurować apache tylko służyć pliki statyczne zamiast przechodzenia przez mod_wsgi, jak jest napisane w dokumentacji here:
Zalecamy korzystanie django.contrib.staticfiles obsłużyć Administrator plików (wraz z serwerem WWW jak przedstawiono w poprzednim rozdziale , oznacza to, używając polecenia zarządzania collectstatic do zbierać statycznych plików w STATIC_ROOT, a następnie konfigurowania serwera WWW służyć STATIC_ROOT na STATIC_URL)
Aby to zrobić, dodałem wiersz 3 w pliku .htaccess, jak pokazano poniżej. Ten plik udostępniony jest na /home2/usr/public_html/mydjangoproject/.htaccess
moim pliku .htaccess:
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteRule /static/ /home2/usr/public_html/mydjangoproject/static
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
Zauważ, że próbowałem linii 3 zi bez ukośnika, bez skutku.
Po przejściu na stronę www.mysite.com/mydjangoproject/static/ pojawia się błąd serwera wewnętrznego 500. Podobnie strona admin nadal nie otrzymuje potrzebnych plików css. Co się dzieje?
Ta ostatnia linia była odpowiedzią! Zostałem trafiony 403 zakazami i wszedłem w króliczą dziurę próbując naprawić uprawnienia i konfiguracje apache. Okazuje się, że należy zmienić domyślnie STATIC_URL. – Nate