Laravel/Homestead/Windows 上的符号 link 问题

Symbolic link issues on Laravel/Homestead/Windows

我在显示存储文件夹中存储的图像时遇到问题。目前所有文件上传都配置为在以下文件夹中结束:

storage\app\public

我正在尝试按如下方式访问它们:

http://homestead.vaniloapp-demo/storage/6/testimage.jpg

但是,这会导致 404。

如果我 运行: php artisan storage:link 我收到以下错误消息:

"The "public/storage”目录已经存在。”

我从其他各种线程中收集了一堆不同的提示和技巧,包括使用 unlink storage 取消 linking public 文件夹,然后尝试 link 它再次手动使用 ln -s ../storage/app/public storage 但这会导致以下错误:

"failed to create symbolic link 'storage': Protocol error"

尝试过使用 Sudo,以管理员身份启动 CMD。

我是 运行ning Homestead 和 Vagrant for Windows。

提前致谢!

米卡

这是我想出的最佳步骤

  1. 取消链接当前 Vagrant 实例上的存储
  2. 阻止无业游民vagrant halt
  3. 运行 CMD/Terminal 作为管理员(右键单击 > 运行 作为管理员)
  4. 转到您的 Homestead 文件夹并启动 vagrant vagrant up --provision
  5. SSH 进入 vagrant vagrant ssh,同时仍在同一个 CMD/Terminal
  6. CD 到您的 Laravel 目录和 运行 php artisan storage:link

我看到有人在 vagrant box 未在 CMD 管理模式下启动时遇到问题。

希望对您有所帮助。

我也花了一些时间解决这个问题。

我也在 Windows 机器上,我的开发环境设置为 Laravel 和 Homestead。

要创建存储 link,在启动 Vagrant 机器后 vagrant up,我已经使用 vagrant ssh 进入我的 Vagrant 机器 命令,然后 cd 进入项目目录 cd /home/vagrant/project。 当在Project的目录运行 php artisan storage:link生成symblink.

现在,如果您执行 ls -la public,您会看到文件的路径是绝对路径 - 这在 [=39 中不起作用=]!路径不一样。

为了解决这个问题,我手动创建了 symblink 以使其成为相对的而不是绝对的。 转到 public 文件夹 cd /home/vagrant/project/public。 手动创建 symblink ln -s ../storage/app/public/ storage.