Изменения в /project/urls.py игнорируются Django - PullRequest
6 голосов
/ 08 июня 2011

Я начинаю работу над зрелым проектом Django и замечаю что-то необычное.Когда я редактирую urls.py - на уровне проекта или ниже - Django игнорирует мои изменения.

Отладка включена, поэтому, когда я получаю 404, Django печатает все шаблоны URL, которые он пробовал.Из этого я вижу шаблоны URL от до внесения изменений .

Опять же, это независимо от того, редактирую ли я /project/urls.py или /project/sub/urls.py,Надо отметить, что подкаталог urls.py включен правильно.

Я остановлюсь на уровне проекта urls.py, на всякий случай.

Я могу сделать небольшое обновление URL-адресов.py или удалите все его содержимое.Отладочная информация 404 показывает старые шаблоны URL.

Как будто Django просматривает кэшированную версию этих файлов urls.py.Как мне поступить?

1 Ответ

11 голосов
/ 08 июня 2011

По умолчанию сервер разработки Django (доступ к которому осуществляется с помощью команды управления runserver) будет следить за вашим кодом и перезагружаться при каждом изменении. Если вы используете любой другой сервер (включая команду Django testserver), это почти наверняка не так.

Обычно сервер загружает источник вашего приложения при запуске. Его нужно будет перезагрузить, чтобы получить последнюю копию вашего кода. Если вы используете Apache с mod_wsgi (вероятно, самый распространенный рабочий сервер для приложений Django), где-то в вашем исходном дереве у вас будет файл приложения wsgi. По соглашению они имеют расширение .wsgi, но его можно назвать как угодно. Этот файл используется Apache для загрузки вашего исходного кода, и полезная функция mod_wsgi (только в режиме демона) заключается в том, что касание (изменение даты модификации) этого файла достаточно, чтобы заставить сервер загрузить исходный код. Если в вашем приложении есть файл wsgi, который вы можете отредактировать, этого достаточно, и повторной загрузки кода должно быть достаточно. Файл может содержать строку application = django.core.handlers.wsgi.WSGIHandler() или что-то в этом роде - это может помочь вам

Если у вас нет доступа или вы не можете найти какой-либо такой файл, вам нужно будет передать обновленный источник администратору сервера и попросить его обновить и перезагрузить источник. Это сложно дать вам больше советов без дополнительной информации - может быть, вы могли бы попросить администратора сервера для получения дополнительной информации, чтобы мы могли быть более полезными?

== Обновление ==

Я проверил заголовки ответа по предоставленной вами ссылке, и похоже, что вы используете nginx для обслуживания сайта. Это может быть просто балансировка нагрузки перед другим сервером, поэтому я все равно рекомендую запросить дополнительную информацию у вашего системного администратора.

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