【问题标题】:Symbolic link issues on Laravel/Homestead/WindowsLaravel/Homestead/Windows 上的符号链接问题
【发布时间】:2020-05-13 06:58:23
【问题描述】:

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

存储\应用\公共

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

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

但是,这会导致 404。

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

““public/storage”目录已经存在。”

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

“未能创建符号链接'storage':协议错误”

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

我正在为 Windows 运行 Homestead 和 Vagrant。

提前致谢!

米卡

【问题讨论】:

    标签: laravel vagrant symlink homestead


    【解决方案1】:

    这是我想出的最佳步骤

    1. 取消链接当前 Vagrant 实例上的存储
    2. 停止流浪vagrant halt
    3. 以管理员身份运行 CMD/终端(右键单击 > 以管理员身份运行)
    4. 转到您的 Homestead 文件夹并启动 vagrant vagrant up --provision
    5. SSH 进入 vagrant vagrant ssh,同时仍在同一个 CMD/终端中
    6. CD 进入你的 Laravel 目录并运行php artisan storage:link

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

    希望这会有所帮助。

    【讨论】:

    • 我正要回复,我之前已经尝试过,但没有成功,但决定再试一次。不知道这次我做了什么不同,但无论哪种方式,它现在都工作得很好!
    【解决方案2】:

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

    我也在一台 Windows 机器上,并使用 Laravel 和 Homestead 设置了我的开发环境。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 2020-08-15
      • 1970-01-01
      • 2019-04-09
      • 2010-11-29
      • 2014-11-22
      相关资源
      最近更新 更多