Я готовлюсь к развертыванию своего приложения Django и заметил, что когда я изменяю параметр «DEBUG» на False, все ссылки на статические файлы (например, JavaScript, CSS и т. д.) Приводят к ошибкам HTTP 500.
Есть идеи, что вызывает эту проблему (и как ее исправить)?





Я настоятельно рекомендую разрешить вашему веб-серверу обрабатывать статические запросы, не обращаясь к Django. В моем urls.py я добавляю обработчик статических запросов только тогда, когда для параметра debug установлено значение 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/ для некоторых сценариев развертывания / howtos и http://docs.djangoproject.com/en/dev/howto/static-files/ для того, как обслуживать статические файлы (но обратите внимание на отказ от ответственности за НЕ использование этих методов в производстве).
В общем, я бы посмотрел журналы вашего сервера и посмотрел, откуда он пытается получить файлы. Я подозреваю, что 500 ошибок на самом деле являются ошибками 404, но они становятся ошибками 500, потому что Django не может найти или отобразить шаблон 404.html. Если это не так, было бы полезно, если бы вы могли опубликовать конкретную ошибку 500, которую вы получаете.
Вы также должны проверять свои URL повсюду. Когда для DEBUG установлено значение False, все URL-адреса без завершающего символа "/" рассматриваются как ошибка, в отличие от случая, когда у вас DEBUG = True, и в этом случае Django будет добавлять "/" везде, где он отсутствует. Короче говоря, убедитесь, что все ссылки ВЕЗДЕ заканчиваются косой чертой.
Оказывается, я закомментировал переменную SECRET_KEY. Однако у меня не было возможности узнать. Просто нужно было попробовать.
Ха. Может помочь, если я посмотрю на свой собственный urls.py. У меня все подключено. Ух ... это был долгий цикл разработки. :)