是否应将Active Storage二进制变体文件推送至版本控制?
这是正常的,但属于Active Storage默认配置下的常见坑
这确实是正常的,但属于Active Storage默认配置下很容易踩的一个小坑——我刚用Active Storage的时候也碰到过这个问题😅。
原因解析:
- Active Storage在开发环境的默认存储服务是
:local,它会把上传的文件存在项目根目录的storage/文件夹下。 - Rails生成的默认
.gitignore文件并没有包含storage/目录,所以Git会自动追踪这个文件夹里的所有文件,当你推送代码到Bitbucket时,这些二进制图片文件自然会被一起推上去。
怎么解决这个问题?
如果你不想把这些本地调试用的二进制文件推送到远程仓库,可以按以下步骤操作:
- 更新
.gitignore文件:在文件末尾添加一行(第二行可选,用于保留目录本身):/storage/* !/storage/.keep - 移除已推送到远程的文件(保留本地文件):在终端执行以下命令:
git rm -r --cached storage/ git commit -m "Stop tracking Active Storage local files" git push - 后续建议:开发环境下各自用本地存储完全没问题,只要确保
storage/被忽略就行;如果团队需要共享开发环境的上传文件,可以考虑配置云存储服务或者共享文件存储,但一般来说没必要。
内容的提问来源于stack exchange,提问作者spitz
相关产品推荐
相关产品推荐

