Debug が False に設定されている場合、Django が静的メディアに対して HTTP 500 エラーを生成するのはなぜですか?

StackOverflow https://stackoverflow.com/questions/121866

  •  02-07-2019
  •  | 
  •  

質問

Django アプリをデプロイする準備をしていますが、「DEBUG」設定を False に変更すると、静的ファイル (つまり、JavaScript、CSS など) へのすべての参照が次のような結果になることに気付きました。 HTTP 500 エラー。

その問題の原因 (およびその修正方法) はありますか?

役に立ちましたか?

解決

Django にアクセスせずに、Web サーバーに静的リクエストを処理させることを強くお勧めします。私の中で urls.py, デバッグが True に設定されている場合にのみ、静的リクエスト ハンドラーを追加します。

ただし、技術的には、静的サービスを提供する Django は正常に動作します。短いドキュメントページを必ず読んでください。 http://docs.djangoproject.com/en/dev/howto/static-files/. 。次のようなエントリを使用するとよいでしょう。 urls.py

(r'^static/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/path/to/media'})

他のヒント

Django 開発サーバーを使用して静的メディアを提供しようとしているようです。を見てみましょう http://docs.djangoproject.com/en/dev/howto/deployment/ 一部の導入シナリオ/ハウツーについては、 http://docs.djangoproject.com/en/dev/howto/static-files/ 静的ファイルを提供する方法については (ただし、運用環境ではこれらのメソッドを使用しないという免責事項に注意してください)。

一般に、サーバーのログを調べて、どこからファイルを取得しようとしているかを確認します。500 エラーは実際には 404 エラーであると思われますが、Django が 404.html テンプレートを見つけられない、またはレンダリングできないため、500 エラーになります。そうでない場合は、発生している具体的な 500 エラーを投稿していただけると助かります。

また、URL をあらゆる場所で確認する必要があります。DEBUG が False に設定されている場合、DEBUG = True の場合とは異なり、末尾に「/」のない URL はすべてバグとして扱われます。この場合、Django は不足している箇所に「/」を追加します。つまり、すべてのリンクがどこでもスラッシュで終わるようにしてください。

コメントアウトしていたことが判明 SECRET_KEY 変数。とはいえ、私には知る由もありませんでした。いろいろ試してみるしかなかった。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top