2016-12-15 8 views
0

まず、この長さについてお詫び申し上げます。Whitenoiseを使用したDjangoスタティックファイル

DjangoをインストールするためにC-Panelプラグインを使用してCentOS6とApache上で実行されているdjangoプロジェクトがあり、運用環境で静的ファイルを提供しようとしています。 私のプロジェクトではDjango 1.9が使用されていますが、Wh​​itenoiseを使用して静的ファイルを提供しようとしています。

私の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'), 

そして、これはこれは私のDjangoアプリ

import os 
from django.core.wsgi import get_wsgi_application 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 
application = get_wsgi_application() 

そして、このためwsgi.pyである私の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', 
] 
) 

ですプラグインによって生成されたものです:

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) 

これを解決する方法上の任意のアドバイスをいただければ幸いです。

+0

私のIPは、現時点では私のラップトップホストファイル経由でしか公開されていないと付け加えています。 – dtdave

答えて

0

これは遅い回答ですが、他の人が回答を探している場合に役立ちます。

'whitenoise.middleware.WhiteNoiseMiddleware'を使用しているときに 'django.middleware.security.SecurityMiddleware'を指定する必要はありません。

また、wsgi.pyに変更を加える必要はありません。ミドルウェアを追加すると、あなたのためにすべての世話をします。

関連する問題