Laravel项目public目录下storage文件夹未提交至GitHub如何解决
解决Laravel中public/storage软链接无法提交到GitHub的问题
兄弟,我之前也踩过这个坑!其实问题根源主要有两个:一是Laravel默认的.gitignore文件已经把public/storage列入了忽略列表,二是直接提交软链接在跨操作系统的开发环境里很容易出问题,所以官方其实并不推荐直接提交这个链接文件。下面给你几个靠谱的解决思路:
方法1:修改.gitignore强制提交软链接(仅限同系统团队使用)
如果你和团队成员都用相同的操作系统(比如全是Mac/Linux或者全是Windows),可以试试这个办法:
- 打开项目根目录的
.gitignore,找到public/storage这一行,要么删掉,要么在前面加#注释掉 - 执行以下命令把软链接加入Git追踪:
git add public/storage -f git commit -m "Add storage symlink to repo" git push - 划重点:跨系统场景下别用这个方法!Windows的快捷方式和Unix系的软链接格式完全不一样,提交后其他系统的开发者拉取代码会直接失效。
方法2:让开发者本地手动创建软链接(官方推荐)
这是Laravel官方最推荐的方案,毕竟每个环境的存储配置可能有差异,手动创建更稳妥:
- 确保你的
.gitignore里保留public/storage的忽略规则,避免后续误提交 - 在项目的README文档里加上明确说明,告诉其他开发者克隆项目后执行:
php artisan storage:link - Windows用户注意:需要用管理员权限打开命令行执行这个命令,或者用WSL的Linux环境来执行,否则可能创建失败。
方法3:用Composer脚本自动创建软链接
想省掉手动操作的步骤?可以把创建软链接的命令加入Composer的安装后脚本:
- 打开项目根目录的
composer.json,找到scripts节点,添加post-install-cmd脚本:"scripts": { "post-install-cmd": [ "@php artisan storage:link" ], // 如果你需要,也可以加上update后的脚本 "post-update-cmd": [ "@php artisan storage:link" ] } - 这样其他开发者执行
composer install或composer update后,系统会自动帮他们创建好软链接,不用再手动跑命令。
另外提醒一句:别把storage/app/public目录加入Git追踪哦!里面的上传文件都是用户生成的内容,提交到仓库会让仓库体积越来越大,Laravel默认的.gitignore已经忽略了这个目录,保持这个设置就好。
内容的提问来源于stack exchange,提问作者user14110897
相关产品推荐
相关产品推荐

