Laravel Symlink():没有这样的文件或目录,因为公用文件夹位于不同的目录中

Laravel Symlink():没有这样的文件或目录,因为公用文件夹位于不同的目录中,laravel,laravel-5,laravel-storage,Laravel,Laravel 5,Laravel Storage,我正在开发一个应用程序,希望将图像上传到我的应用程序中。现在,当我想为我的文件创建符号链接时,出现以下错误: ErrorException : symlink(): No such file or directory Exception trace: symlink("/home/user/private/application/storage/app/public", "/home/user/private/application/public/storage") 我知道这是什么原因,但我

我正在开发一个应用程序,希望将图像上传到我的应用程序中。现在,当我想为我的文件创建符号链接时,出现以下错误:

ErrorException : symlink(): No such file or directory

Exception trace:
symlink("/home/user/private/application/storage/app/public", "/home/user/private/application/public/storage")
我知道这是什么原因,但我不知道如何修复和/或找到解决方法

我的公共文件夹位于我的html\u根目录中,而应用程序的其余部分位于我的html\u根目录之外的目录中。在这种情况下,
/home/user/private/application


当我使用
php artisan storage:link
时,它会尝试在我的“private”目录中查找公用文件夹,但是找不到它,因为我的公用文件夹位于html\u根目录下。

通过将我的html\u根目录内容放回
/home/user/private/application
中的私人文件夹,并创建一个指向我的
/home/user
的公用文件夹的符号链接,然后将
/home/user/public
文件夹重命名为
/home/user/html\u root
(并保持符号链接完整)

因此,我仍然使用正式的Laravel目录结构,并对公用文件夹进行了一次伪造(符号链接)


有了它,我可以正常使用
php artisan storage:link
,而无需创建自定义命令。

如果更改了Laravel的文件夹结构,则无法期望依赖该结构的函数正常工作。在本例中,我将查看
storage:link
命令(
illumb\Foundation\Console\StorageLinkCommand
)的代码,复制到自定义命令并根据需要进行修改。由于只有公共内容应该在html\u根目录中,因此我认为将其余内容放在另一个目录中也很好(出于结构目的)。