LFTP 反向镜像到远程服务器不上传更改的文件

LFTP reverse mirror to remote server not uploading changed files

我正在尝试使用 Gitlab 及其 CI/CD 设施将我的网站自动部署到远程服务器。我正在使用一个名为 middleman 的静态站点生成器,它将所有文件生成到一个构建文件夹中。这在本地有效,如果我手动上传文件,它会准确反映我想要的。问题是使用以下命令时,尽管它正确生成了所有文件;

$ 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 文件中反映出来... ?文件本身已更新,但尚未上传。

非常感谢任何帮助。

这对您来说可能为时已晚,但问题是“--ignore-time”。如果文件大小保持不变,它就不会是 re-uploaded。因此,在您的 html 文件中从 'stylesheets/styles-bb5541bd.css' 更改为 'stylesheets/styles-4deda93b.css' 不会改变大小,因此不会被镜像。

更新: 由于直接使用 LFTP 存在这些问题,我现在使用 git-ftp.

这是我的 .gitlab-ci.yml

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

和.git-ftp-忽略

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