解决win环境中Laravel项目storage链接在homestead中无效的问题
如官方文档所述,Laravel
提供了Artisan
命令 storage:link
来创建符号链接:
php artisan storage:link
我的homestead中无法成功执行此命令,或许是文件系统和共享方式的问题无法执行ln
,并未追究。因为我在win环境中可以成功执行并使用。但当访问homestead环境时,发现win下的软连接并没有起作用。
我们查看一下homestead里此链接的情况,发现其链接指向是有问题的
image.png
我们来到storage:link
的执行方法Illuminate\Filesystem\Filesystem.link()
因为实在win中执行的,打印其exec()
执行的命令
image.png
可以看到使用的是mklink
指定绝对路径来生成的链接
image.png
猜测homestead
中无法正确解析win
的绝对路径链接
我们进入public
目录手动创建一个相对链接
mklink /D ".\storage" "..\storage\app\public"
image.png
然后我们到
homestead
环境中查看,链接指向已经正常了