Лучший подход для перезагрузки страницы (не из кеша) с использованием Apache и Angular - PullRequest
0 голосов
/ 09 октября 2018

Я создал приложение Angular 6 и разместил его на Apache на удаленном сервере.Создал сборку с ng build --prod.

. Я заметил, что при внесении изменений и обновлении файла html - страница загружается из кэша, а не из новой версии файла, который находится в папке Apache (используя настройку по умолчанию в Apache и пока ничего в метатегах на HTML-страницах).

Как принудительно перезагрузить страницу в клиентском браузере, но только при наличии новой версии этой же страницы?(новые изменения в существующем сайте)

Каковы лучшие практики?

Ответы [ 4 ]

0 голосов
/ 09 октября 2018

Полагаю, вы задаете этот вопрос для производственной среды, а не для целей разработки.

Если это так, то вы можете проверить следующее:

  1. index.html файл не обновляется.

  2. проверьте, какой срок действия кэша устанавливается в браузере.Это должно быть no-cache.

  3. Как вы генерируете код здания.Если используется angular-cli, то ng build создаст имена чанков с хэш-кодом, и каждый раз, когда изменяется содержимое, оно будет разным.

  4. проверьте заголовок кэша для лениво загруженного модуля

0 голосов
/ 09 октября 2018

Вы можете использовать сборку AOT Production, по умолчанию включено хеширование.

ng build --prod
0 голосов
/ 09 октября 2018

При использовании производственной сборки ng build --prod cli создаст пакет со значением хеш-функции, прикрепленным к каждому из ваших угловых файлов.Поэтому, если вы убедитесь, что ваш индекс не кэширован, он будет ссылаться на файлы с хешами.Если файлы не изменились, их хэши будут одинаковыми, и поэтому он будет загружать их из кэша.Если они изменятся, он попытается загрузить новые файлы.

Осталось убедиться, что файл index.html не кэшируется, и это можно сделать, отправив заголовки без кэширования или используядинамический файл (например, php, jsp, ...) вместо * .html.

0 голосов
/ 09 октября 2018

При сборке сделайте следующее:

ng build --output-hashing=all

Это должно предотвратить кэширование измененных файлов.

...