проблема со стати c django файлов на хостинге - PullRequest
0 голосов
/ 27 мая 2020

Проблема в том, что на хостинге у меня нет доступа к прямой настройке 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()
...