Laravel 8执行Artisan Storage:link提示成功却报找不到指定文件如何解决
问题产生原因
- 该报错和你之前执行的
npm run dev无直接关联,该命令仅负责前端资源编译,除非你自定义了前端编译输出路径到public/storage目录,才会引发路径冲突。 - 最常见诱因是
public目录下已经存在名为storage的实体文件夹(非软链接),storage:link命令无法直接覆盖现有实体文件夹,会抛出"The system cannot find the file specified."错误,同时错误输出执行成功的提示,属于命令本身的输出逻辑问题。 storage/app/public源目录不存在:Laravel默认不会自动创建该目录,如果你从未往本地公共存储写入过文件,该目录缺失会导致软链接创建失败。- Windows环境权限不足:Windows系统下创建软链接需要终端拥有管理员权限,使用普通权限运行CMD/PowerShell/IDE内置终端时会触发该错误。
config/filesystems.php内的links配置被修改:如果自定义了软链接的源路径或目标路径,指向不存在的路径时也会触发该报错。
解决方案
- 先检查并删除
public目录下已存在的storage实体文件夹,再次执行php artisan storage:link尝试创建。 - 确认
storage/app/public目录存在,若不存在手动创建该目录,同时保证该目录配置了正常的读写权限。 - 如果你是Windows系统用户,右键点击你使用的终端程序,选择「以管理员身份运行」后,再重新执行
php artisan storage:link命令。 - 检查
config/filesystems.php中的links配置,确保和默认配置一致:
'links' => [ public_path('storage') => storage_path('app/public'), ],
- 以上方案都无效时可以手动创建软链接:
- Windows管理员终端执行:
mklink /d "你的项目完整路径\public\storage" "你的项目完整路径\storage\app\public" - Linux/Mac终端执行:
ln -s 你的项目完整路径/storage/app/public 你的项目完整路径/public/storage
- Windows管理员终端执行:
内容的提问来源于stack exchange,提问作者Lana Septiana
相关产品推荐
相关产品推荐

