Джанго - возиться с тестовым сервером - 304 ошибки и тому подобное - PullRequest
1 голос
/ 11 октября 2011

Во время работы над моим веб-приложением (для которого требуется вход на весь сайт) я заметил забавный «глюк» (если можно так его назвать).Я просматривал свой сайт Django, зашел на сайт (на тестовом сервере) в Chrome.Затем я вышел из своего сайта и полностью закрыл Chrome.

Затем я открыл Firefox и вставил URL-адрес на мой сайт Django, ожидая, что он попадет на страницу входа.Однако меня не попросили войти в систему, а уже вошли в систему. Поэтому я вышел из сайта и закрыл Firefox.

Затем я снова открыл Chrome, чтобы войти в систему, но обнаружил, что не было стилей CSS.Я вошел в систему, и весь сайт потерял свою стилизацию CSS, и тестовый сервер получил ошибки 304 для всех файлов CSS и IMG.

Я выяснил, что ошибка 304 имеет что-то дляделать с несоответствием времени (как Django думал, что я вышел из системы, но в Firefox я вошел в систему - так что теперь это запутано).

Мне просто интересно, можно ли этого избежать или это «особенность» тестового сервера?Такое случится и в режиме производства?


РЕДАКТИРОВАТЬ для ясности того, что я спрашиваю:

Произойдет ли потеря стилей и изображений из-за ошибки 304, с которой я столкнулся при работе с Djangoтестовый сервер продолжает происходить , когда я запускаю веб-приложение с Apache?

Спасибо!

1 Ответ

0 голосов
/ 11 октября 2011

У вас есть вопросы о трех вещах:

  1. Почему вы вошли в Firefox.
  2. Почему вы потеряли CSS-стили в Chrome.
  3. Каковы все эти 304 ответа.

К сожалению, существует довольно много возможных объяснений первых двух проблем, которые вы видите.Скорее всего, в этом нет ничего серьезного.

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

К счастью, 304 ответа не являются проблемой вообще.304 просто означает, что браузер имеет файл в своем кэше.См. Обработка условного представления :

Когда клиент в следующий раз запрашивает тот же ресурс, он может отправить заголовок, такой как If-Modified-Since, содержащий дату последней модификациивремя отправки или If-none-match, содержащее ETag, в котором оно было отправлено.Если текущая версия страницы совпадает с ETag, отправленным клиентом, или если ресурс не был изменен, вместо полного ответа можно отправить код состояния 304, сообщив клиенту, что ничего не изменилось.

...