Проблема в том, что на хостинге у меня нет доступа к прямой настройке Apache. Все, что я могу сделать, это работать с ним, используя .htaccess. Apache не обрабатывает мои файлы stati c, когда Debug = False.
my settings.py:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),]
#
STATIC_ROOT = '/home/acc_name/domains/site_name/public_html/static_all'
#
STATIC_URL = '/home/a0173508/domains/abiturient.jurac.ru/myproject/static'
MEDIA_URL = '/media/'
MEDIA_ROOT = '/home/a0173508/domains/abiturient.jurac.ru/myproject/media'
my .htasse cc
DirectoryIndex site.wsgi index.html
Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site.wsgi/$1 [QSA,PT,L]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Я пробовал добавить RewriteCond %{REQUEST_URI} !^\/static_all\/
в .htasse cc, но это не помогло.
collectstatic
собирает все файлы в нужную папку и все работает правильно, когда 'django.contrib.staticfiles'
работает с файлами.
мой urls.py
urlpatterns = [
###
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \
+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
структура папок:
site_name
-public_html
---static_all
---.htaccess
---site.wsgi
-myproject
---app1
---app2
---myproject
-----settings.py
-----urls.py
site.wsgi:
import os, sys
virtual_env = os.path.expanduser('/home/a0173508/python')
activate_this = os.path.join(virtual_env, 'bin/activate_this.py')
with open(activate_this) as f:
exec(f.read(), {'__file__': activate_this})
sys.path.insert(0, os.path.join('/home/acc_name/domains/site_name/myproject'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()