2016-12-29 13 views
0

Скажем, у меня есть сайт с 2-х файлов, которые статически размещенные на S3:гонки условие развертывания веб-сайта

  1. index.html
  2. script.js

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

  1. Частично обновляемые index.html или script.js возвращается.
  2. Старому index.html возвращается клиенту. Затем файлы обновляются на сервере. Затем клиент делает запрос для script.js, который возвращает новую версию.

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

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

ответ

0

Один из способов адресации # 2 - использовать метод кэширования при программном добавлении хэша в имя файла script.js при компиляции, например. <script src="script.js"> становится <script src="script-79b1264ad3bc303fd.js">

Теперь, когда script-[whatever].js запрашивается через несоответствующий index.html, клиент получает 404, а не неправильный сценарий.

Что касается того, как вы собираетесь развертывать это, это зависит от вашего конвейера сборки. Вы используете Grunt/Gulp/etc?