Обратное зеркало LFTP на удаленный сервер не загружает измененные файлы

Я пытаюсь автоматизировать развертывание моего веб-сайта на удаленном сервере с помощью Gitlab и его средств CI / CD. Я использую генератор статических сайтов, называемый посредником, который генерирует все файлы в папку сборки. Это работает локально, и если бы я загружал файлы вручную, это отражало бы именно то, что я хочу. Проблема заключается в использовании следующей команды, хотя она правильно генерирует все файлы;

$ lftp -c "set ftp:ssl-allow no; open -u $USERNAME,$PASSWORD $HOST; mirror -Rv build/ ./public_html  --delete-first --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"

Вот что в итоге выплюнули;

Removing old file `stylesheets/styles-bb5541bd.css'
Removing old file `stylesheets/styles-bb5541bd.css.gz'
Transferring file `stylesheets/styles-4deda93b.css'
Transferring file `stylesheets/styles-4deda93b.css.gz'

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

Любая помощь по этому поводу приветствуется.


702
1

Ответ:

Решено

Возможно, для вас уже слишком поздно, но проблема в «--ignore-time». Если размер файла не изменится, он не будет загружен повторно. Таким образом, изменение с «stylesheets / styles-bb5541bd.css» на «stylesheets / styles-4deda93b.css» в вашем html-файле не изменит размер, поэтому он не будет зеркально отражен.

Обновлять: Из-за этих проблем с прямым использованием LFTP я теперь использую git-ftp.

Вот мой .gitlab-ci.yml

https://gist.github.com/westhouseit/5310a21ca6e6218ebc20ba94530bb0a6

и .git-ftp-ignore

https://gist.github.com/westhouseit/d3e84f3c26d733b286c0481f957052ef