Угловая очистка кеша после развертывания в производство в IE11 - PullRequest
0 голосов
/ 18 мая 2018

У нас есть приложение с комбинацией: Angular5 + ASP.NET WebApi.

Поддерживаются следующие браузеры: Google Chrome, IE11 +

После развертывания в производство с некоторыми изменениями в коде клиентау конечных пользователей все еще может быть где-то кеширован старый код.Какое решение для этого?Предположим, что выпуски client и backEnd уже имеют версии, и у нас есть доступ к этой информации.

Один из вариантов - заставить браузер очистить кэш после того, как код обнаружит, что версия изменилась (здесь вопрос будеткак это сделать).Еще один, который может информировать пользователя о необходимости очистки кэша, поскольку изменилась версия (обходной путь).

Каков наилучший способ решения этой проблемы?Я предполагаю, что это довольно распространенный сценарий, но я не могу найти в Интернете хороших материалов о том, как этого добиться.

С уважением

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Я бы ожидал, что эта проблема будет по сути решаться через If-Modified-Since / Last-Modified Заголовки, но несколько потоков, таких как ваш, похоже, указывают, что это не так.

ЕстьБыло предложено несколько способов обойти это.Чаще всего используется для повторной идентификации файла с помощью дополнительного индикатора версии в URL, для получения дополнительной информации см. this .

Также MVC 6 может помочь вам с , что .

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

0 голосов
/ 18 мая 2018

Создайте свое приложение с флагом --prod, , как это предусмотрено CLI .

Вы также можете запустить команду ng build --help ( RTFM ), которая отображает этот флаг:

--output-hashing=none|all|media|bundles 
(String) Define the output filename cache-busting hashing mode.
aliases: -oh <value>, --outputHashing <value>
...