2017-01-28 4 views
0

При наборе с angular-cli куски получают уникальные имена в производственном режиме. Повторение набора (например, развертывание новой версии) уничтожает каталог dist и заменяет новые пакеты новыми именами файлов, заменяя только index.html, указывая на текущие имена пакетов.Обнаружение обновления приложения для SPA

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

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

  • Измените процесс сборки, чтобы не удалять устаревшие файлы, но сохраняйте их в течение некоторого времени параллельно. Вопрос тогда остается: как долго? Прямой лимит времени на открытие окна браузера SPA не существует.

  • Обращайтесь с 404 на нагрузку на пучок так или иначе и перезагрузите приложение. Где это было бы лучше?

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

ответ

0

Если вы используете бесплатный обратный прокси-сервер, такой как Cloudflare, он будет кэшировать статические ресурсы в течение некоторого времени. Собственно, разве это не будет проблемой для вашего процесса сборки?

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