2016-12-21 16 views
3

DEBUG = TrueのときにHerokuに私のアプリを(Django経由で)、DEBUG = Falseのときにサーバーエラーが発生します。私は静的ファイルをどのように設定したのかと関係していると思います。 「STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'」とコメントアウトするとエラーメッセージは表示されませんが、サイトは完全にフォーマットされていません。ここでは、関連するsettings.pyのコードは次のとおりです。サーバエラー(500)の原因となるWhitenoiseや静的ファイル

INSTALLED_APPS = [ 
...  
    'django.contrib.staticfiles', 
... 
] 

ALLOWED_HOSTS = ['*'] 

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 

STATIC_ROOT= os.path.join(PROJECT_ROOT, 'staticfiles') 
STATIC_URL = '/static/' 
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 


STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'), 
) 

私は無駄に(ルートフォルダ内settings.pyと同じフォルダ、など)の場所のすべての種類の私の静的フォルダを追加しました。

アイデア?

+0

'' python manage.py collectstatic'を実行して再試行してください。また、エラーが500でないものも含めてください。DEBUG = Falseに設定し、 'python manage.py runserver'を試してみて、スタックトレースを確認してください。 –

+0

一般的なルール運用環境でdjango runserverとstaticfilesを使用しないでください。あなたは開発目的でそれらを使用することになっています。 – 2ps

+0

無関係ですが重要:セキュリティ上、 'ALLOWED_HOSTS'設定で実際に使用するドメインを指定してください。 'ALLOWED_HOSTS = ['*']'を使ってはいけませんが、これは幾分反パターンです。関連するドキュメントについては、https://docs.djangoproject.com/en/1.10/ref/settings/#allowed-hostsを参照してください。 – Peterino

答えて

0

これらの静的ファイルの設定は、HerokuのWebサイト(https://devcenter.heroku.com/articles/django-assets)から直接行われました。私がpython manage.py collectstaticを実行したとき、私はexportの値を持っていたキーエラー 'DATABASE_URL'を取得し、その後、私のファイルをHerokuにプッシュしたところ、正しく動作しました。

1

あなたのsettings.py MIDDLEWARE設定にホワイトニングミドルウェアを含めるのを忘れているかもしれません。あなたのsettings.pyファイルを編集し、DjangoのSecurityMiddlewareから離れて他のすべてのミドルウェアの上、MIDDLEWARE_CLASSESリストにホワイトノイズを追加します。

詳しい情報は、ホワイトノイズのドキュメントで見つけることができます

MIDDLEWARE_CLASSES = [ 
# 'django.middleware.security.SecurityMiddleware', 
'whitenoise.middleware.WhiteNoiseMiddleware', 
#... 
] 
http://whitenoise.evans.io/en/stable/django.html

は、ステップを通過しますあなたが欠けているものを見るためのバイステップ設定。 Herokuのドキュメントでは、バグの原因となるミドルウェアの追加が省略される傾向があります。アプリケーションに欠けているものがあるかもしれません。

関連する問題