Очистка кеша шаблонов Angular 2/4 не работает

У нас есть проблема с нашим приложением Angular 4 относительно очистки кеша. Похоже, что старые файлы-шаблоны кешируются, когда мы выпускаем новые версии (Ctrl + F5 решает проблему).

Мы используем angular-cli (--prod) для создания нашего приложения, которое должно обрабатывать блокировку кеша при выпуске новых версий. Скомпилированные имена js-файлов содержат хэш-номер для каждой версии, поэтому файлы не будут кэшироваться. И html должен быть включен в javascript-файлы. Похоже, что старые шаблоны все еще кэшируются.

Одно из возможных решений может быть здесь: Как предотвратить кеширование браузера на сайте Angular 2? Почему это должно что-то менять, ведь запрашиваются не шаблон, а js-файлы? Какое лучшее решение этой проблемы?


person DominikP    schedule 29.11.2017    source источник
comment
Вы убедились, что кешируется не сама главная страница (index.html)?   -  person David    schedule 29.11.2017
comment
На самом деле это может быть проблемой. Является ли для этого хорошей практикой использовать метатег управления кешем? (stackoverflow.com/a/1341133/3584607)   -  person DominikP    schedule 29.11.2017
comment
Будет ли это также работать с кешированием изображений, javascript ...?   -  person DominikP    schedule 29.11.2017
comment
Это зависит от браузера и метаданных кеша, добавленных вашим веб-сервером (apache, nginx).   -  person David    schedule 30.11.2017
comment
Я использовал нетривиальное решение, но оно устраняет все проблемы с кешем типов в angular 6 (браузер, cdn, прокси / isp cache) см. (stackoverflow.com/a/54538027/1544054)   -  person Aviko    schedule 19.02.2019


Ответы (1)


Решением было установить заголовок cache-expires для файла index.html в нашей амазонской S3-корзине.

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html#ExpirationAddingHeadersInS3

person DominikP    schedule 04.12.2017