Предотвратить кеширование страниц? - PullRequest
0 голосов
/ 11 февраля 2020

Я заметил, когда я развертывал свой веб-проект flutter с nginx, после выполнения "веб-сборки flutter build", что если я не удаляю кеш, старые файлы все еще остаются в моем браузере chrome. Можно ли принудительно установить refre sh для пользователей при развертывании обновлений?

1 Ответ

0 голосов
/ 30 марта 2020

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

Но если в ваших ситуациях требуется, чтобы у клиента была обновленная версия сайта в кратчайшие сроки, существует обходной путь.

Файл main.dart.js выглядит примерно так:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>My Flutter App</title>
  </head>
  <body>
    <script src="main.dart.js" type="application/javascript"></script>
  </body>
</html>

Чтобы заставить браузеры перезагружать приложение каждый раз, когда мы этого хотим, добавьте уникальный параметр в main.dart. js script-sr c (например, версия, хотя это может быть что угодно, даже случайное число после?). Новый индекс. html будет выглядеть следующим образом:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>My Flutter App</title>
  </head>
  <body>
    <script src="main.dart.js?version=1" type="application/javascript"></script>
  </body>
</html>

Минусы:

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

  • Это все еще занимает время, если у клиента медленное соединение inte rnet. Проблема возникает, когда браузеры, такие как Chrome показывают Lite (кэшированную) версию веб-сайта, пока inte rnet соединение не будет достаточно быстрым.

  • Предыдущие версии по-прежнему сохраняются на браузер клиента до истечения времени ожидания

...