Ах, добро пожаловать в мир управления версиями контента.
Это не вопрос GIT, а на самом деле распространенная проблема при попытке синхронизировать статический контент, обслуживаемый из одного местоположения, с версионным контентом (из управления исходным кодом), который подается из другого местоположения.
Распространенным вариантом использования является веб-сайт с динамическим и статическим контентом.
Случайный пример: hotels.com . Если вы посмотрите фотографии на первой странице, вы увидите такие URL-адреса, как , этот . Очевидно, что имя этого ресурса автоматически генерируется Asset Manager
.
Мы используем Django и Python для некоторых задач, следовательно, используем Django Mediagenerator .
Мы генерируем версионный каталог статических файлов, который мы загружаем в S3.
Как видно из этого сравнения , существует множество других вариантов!
В качестве бонуса за использование менеджеров активов вы также получаете сжатие, запутывание, слияние и т. Д.
В другой части приложения мы вручную делаем версии файлов. Я автоматически вычисляю модуль python для файловых хэшей (хэш для каждого статического файла). Я загружаю статические файлы в S3, переименовывая файлы, чтобы добавить MD5-хеш их содержимого. Таким образом, some_file.txt становится some_file_123123123123.txt на S3, и я могу загрузить конкретную версию файла с S3. Модуль с хешами хранится в системе контроля версий (GIT).