Почему Django генерирует ошибки HTTP 500 для статического носителя, если для параметра Debug установлено значение False? - PullRequest
5 голосов
/ 23 сентября 2008

Я готовлюсь к развертыванию приложения Django и заметил, что при изменении значения параметра «DEBUG» на False все ссылки на статические файлы (например, JavaScript, CSS и т.

Есть идеи, что является причиной этой проблемы (и как ее исправить)?

Ответы [ 4 ]

12 голосов
/ 23 сентября 2008

Я бы настоятельно рекомендовал разрешить вашему веб-серверу обрабатывать статические запросы, не обращаясь к Django. В моем 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'})
6 голосов
/ 23 сентября 2008

Похоже, вы пытаетесь обслуживать статический носитель с помощью сервера разработки 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, которую вы получаете.

0 голосов
/ 30 июля 2016

Оказывается, я закомментировал переменную SECRET_KEY. У меня не было никакого способа узнать все же. Просто нужно было что-то попробовать.

0 голосов
/ 18 июня 2013

Вы также должны проверить свои URL повсюду. Когда для параметра DEBUG установлено значение False, все URL-адреса без завершающего символа "/" считаются ошибкой, в отличие от случая, когда DEBUG = True, и в этом случае Django будет добавлять "/" везде, где оно отсутствует. Итак, короче говоря, убедитесь, что все ссылки заканчиваются косой чертой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...