Приложение Angular должно очищать кеш после нового развертывания - PullRequest
1 голос
/ 28 марта 2019

У нас есть приложение Angular 6. Он подается на Nginx. И SSL включен.

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

Какие изменения не обновляются автоматически? Чем они отличаются от других?

Каково общее решение, чтобы избежать проблемы?

1 Ответ

3 голосов
/ 28 марта 2019

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

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

Angular cli разрешает эту проблему, предоставляя флаг --output-hashing для команды построения.

Проверьте официальный документ: https://angular.io/cli/build

Пример

ng build --aot --output-hashing=all

Ниже приведены параметры, которые вы можете передать в --output-hashing

  • нет: хэширование не выполняется
  • media: добавлять хэши только к файлам, обработанным с помощью [url | file] -loaders
  • связки: только добавлять хэши в выходные связки
  • все: добавление хэшей к носителям и пакетам
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...