在服务器上载后,Laravel无法访问存储文件夹中存储的图像

Ahs*_*san 6 php storage laravel laravel-5.6

我正在尝试上传和检索我的Laravel项目中的图像.它在我的本地服务器上工作得很好,但在上传到实时服务器之后,它无法正常工作.

我正在使用nginx.

我试过了,php artisan storage:link但它说

"public/storage"目录已存在

我正在使用此行在新页面中打开存储的图像.

<a href="{{ url('/storage/images/'.$file->file_name) }}" title="">View</a>
Run Code Online (Sandbox Code Playgroud)

如果我将鼠标放在视图按钮上,它会显示以下链接:my_ip/storage/images/image.png我认为这是正确的.

但是,单击该链接会重定向到主页.

小智 9

如果您已将 public/storage 文件夹上传到服务器并出现错误:“public/storage”目录已存在。

只需删除它

rm -R public/storage
Run Code Online (Sandbox Code Playgroud)

并再次运行命令

php artisan storage:link
Run Code Online (Sandbox Code Playgroud)


mwa*_*wal 7

href是正确的,但这不是问题.问题是链接位置存在文件.正如你所发现的那样,它不在那里.

上传时,请确保您没有上传真实目录public/storage.

在您的本地服务器上,您是否错误地创建了一个真实的目录public/storage

如果您这样做,您需要知道laravel约定是将文件存储storage/app/public在app目录的目录中.您不public/storage自己创建文件夹.您可以创建一个符号链接以将其链接到那里.这样,你输入的东西storage/app/public,也会出现,因为符号链接,at public/storage.

首先检查你的本地服务器是否遵循上面列出的laravel约定(以及文档中),然后,在上传到你的服务器后,storage:link再次尝试命令,并且,只要你没有public/storage更多的真实目录,但只是一个链接,它应该有希望工作.

请注意我在这里完成的工作是解释您获得的有关该目录已存在的错误消息.

  • 我删除了 `public/storage` 文件夹并再次运行 `php artisan storage:link` 命令。我不知道为什么,但它的工作原理。我想每次我在服务器上上传或安装应用程序时,我都需要将 *public* 文件夹与 *storage* 链接起来。 (2认同)