Очистить кеш браузера в Angular - PullRequest
1 голос
/ 04 апреля 2019

У меня проблема с приложением Angular, которое я очень часто обновляю.

Я хотел бы избежать кэша браузера и пробую несколько вариантов, но ни один из них не работает.

Во-первых, мне очень трудно проверить, работает ли решение, потому что, когда я загружаю новую версию, иногда я вижу ее без необходимости делать что-то большее, чем обновление страницы, а в других случаях мне нужно открыть консоль и принудительно очистить обновлениеcache.

Я попытался включить в заголовок запроса Cache-Control: no-cache, как вы можете видеть на картинке, но у меня это не работает.

enter image description here

Я также пытался, поместите в app.component.ts

templateUrl: './app.component.html? v1'

, как я видел в некоторые ответы , но ни.

Правда в том, что я в отчаянии, потому что, когда я даю что-то, что я думаю, работает, когда я проверяю это с моим боссом, он не обновляет это :-(, и плохо то, что, как я говорюЯ не знаю, как действительно проверить, что на самом делеКаждый раз, когда я захожу в Интернет, с сервера запрашивается последняя версия.

Спасибо за помощь

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Когда вы создаете приложение с использованием ng build, вы должны использовать следующий флаг:

--outputHashing=all

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

Поэтому один из способов сделать это - запустить это:

ng build --prod --outputHashing=all

Подробнее о флагах параметров сборки вы можете прочитать здесь здесь .

Если вы не хотите добавлять флаги при запуске ng build, вам следуетустановите его в своих конфигурациях в файле angular.json.

"configurations": {
  "production": {
    "optimization": true,
    "outputHashing": "all",
     .
     .
     .
  }
}
0 голосов
/ 28 мая 2019

try location.reload(true);

в соответствии с w3c description :

По умолчанию метод reload () перезагружает страницу из кэша, но выможет заставить его перезагрузить страницу с сервера, установив для параметра forceGet значение true: location.reload (true).

...