Angular 6 Сервисные рабочие на производстве - PullRequest
0 голосов
/ 17 января 2019

У меня проблема с текущим работником службы в моем производственном проекте. В основном сервер работает на Apache. Всякий раз, когда я строю свой проект используя ng build --aot --build-optimizer --prod и загружая и заменяя все файлы из папки dist в моей папке dist на сервере, работники сферы обслуживания не обновят мою новую версию, пока я полностью не очистлю кеш в браузере, после чего будет загружена последняя версия.

Мой вопрос: я делаю что-то не так во время загрузки? Или это проблема с самим работником?

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

Также я добавил следующий код в app.component.ts, чтобы отслеживать, запускается ли обновление версии или нет, но я никогда не получаю вывод в консоли.

constructor(private router: Router, public swUpdate: SwUpdate) {}

    ngOnInit() {

    this.swUpdate.available.subscribe(event => {
        console.log(`%c A newer version is now available. Refresh the page now to update the cache`, "background: black; color: red");
        this.update = true;
        this.swUpdate.activateUpdate().then(() => document.location.reload());
    });

    this.swUpdate.checkForUpdate();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...