首先,为这个长度道歉。
我有一个使用C-Panel插件在Centos6和Apache上运行的django项目,用于安装Django,我正在尝试在生产环境中提供静态文件。 我的项目使用Django 1.9,我正在尝试使用Whitenoise提供我的静态文件。
我的settings.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',
]
)
这是我的Django应用程序的wsgi.py
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()
我的settings.py中有DEBUG = False。 当我运行./manage.py collectstatic时,将收集文件,如果我以0.0.0.0:8000运行服务器,则会找到静态文件。
我尝试将以下内容添加到两个wsgi.py文件中,但无济于事:
from whitenoise.django importDjangoWhiteNoise
application = DjangoWhiteNoise(application)
任何有关如何解决此问题的建议将不胜感激。
这是一个较晚的响应,但可能会帮助其他人寻找答案。
使用“ whitenoise.middleware.WhiteNoiseMiddleware”时,不必包括“ django.middleware.security.SecurityMiddleware”。
另外,您无需在wsgi.py中进行任何更改。 添加中间件将为您处理所有事情。