#an&ular #&oo&le-chrome #browser-cache #cache-control
#an&ular #&oo&le-chrome #браузер-кэш #управление кэшем
Вопрос:
У меня есть приложение an&ular, и когда я открываю маршрут после выпуска, я получаю поврежденную страницу. Это связано с тем, что основная html-страница будет восстановлена из кэша, а ожидаемый пакет JS присутствовать не будет. Сервер доставит не найденный HTML-код, в результате чего приложение будет бесконечно ждать.
Я проверил заголовки, которые мы возвращаем для html, и я ожидаю, что срок его действия истечет через 5 минут.
eta&: «5f2d6f5b-1b5f» истекает: Вс, 09 авг 2020 16:18:40 GMT контроль кэша: максимальный возраст=300
когда я просто обновлю страницу, все начнет работать. Кроме того, я никогда не смогу воспроизвести эту проблему, если у меня открыты инструменты разработчика. Есть ли какой-нибудь способ проверить, что есть в кэше браузера и почему срок его действия не истечет? Я на ubuntu.
Я не вижу этой проблемы в firefox (вероятно, я использую его реже). Я ожидаю, что это также повлияет на моих пользователей. следовательно, пытаюсь разобраться в этом более подробно.
Ответ №1:
Эта проблема не имела ничего общего с Chrome!! Это было с n&inx.
N&inx не устанавливал тот же срок действия для ответа 200 против 304. Когда мы принудительно обновляем Chrome, он отправляет обычное &et и получает ответ 200 ok. Но когда он инициирует &et с помощью if-modified-since или If-None-Match, тогда возвращается ответ 304 с большим сроком действия кэша, установленным по умолчанию, поскольку в этих ответах нет типа содержимого.
Для ребят, которые задавались этим вопросом, я оставляю решение для n&inx здесь.
https://&ithub.com/h5bp/server-confi&s-n&inx/issues/230
Сообщение о проблеме отправлено в n&inx, и там предложено ее обойти. Вот окончательное рекомендуемое кэширование на основе типа контента.
обратите внимание на то, как запись с пустым типом содержимого отображается на off .
# Нет содержимого
«» выключен;
Это путь, пройденный 304 ответом, и теперь он не вызывает никаких проблем.