Първо се извиняваме за продължителността на това.
Имам проект за джанго, работещ на Centos6 иApache използва C-Panel плъгин за инсталиране на Django и се опитвам да обслужвам статичните файлове в производството. Моят проект използва Django 1.9 и се опитвам да използвам Whitenoise, за да обслужвам статичните си файлове.
Моите настройки.py съдържат следното:
STATICFILES_STORAGE ="whitenoise.django.GzipManifestStaticFilesStorage"
STATIC_URL = "/static/"
STATIC_ROOT = STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "common-static"),
И това са моите MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES = [
"django.middleware.security.SecurityMiddleware",
"whitenoise.middleware.WhiteNoiseMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.auth.middleware.SessionAuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
)
Това е wsgi.py за приложението ми django
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
application = get_wsgi_application()
И това е генерираното от приставката:
import os
import sys
import site
vepath = "/home/mysite/virtualenv3.5/lib/python3.5/site-packages"
prev_sys_path = list(sys.path)
site.addsitedir(vepath)
sys.path.append("/home/mysite/djangosites/mysite")
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings"
application = get_wsgi_application()
Имам DEBUG = False в своите settings.py. Когато стартирам ./manage.py collestatic файловете се събират и ако пусна сървъра с 0.0.0.0:8000 се намират статични файлове.
Опитах се да добавя следното и в двата файла wsgi.py, но без резултат:
from whitenoise.django importDjangoWhiteNoise
application = DjangoWhiteNoise(application)
Всеки съвет за това как да се реши това ще бъде оценен.
Отговори:
0 за отговор № 1Това е закъснял отговор, но може да помогне на други хора, които търсят отговор.
НЕ трябва да включвате „django.middleware.security.SecurityMiddleware“, когато „използвате„ whitenoise.middleware.WhiteNoiseMiddleware “.
Освен това няма нужда да правите никакви промени в wsgi.py. Добавянето на междинен софтуер ще се погрижи за всичко за вас.