首页 文章

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

提问于
浏览
5

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

我正在使用nginx .

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

“public / storage”目录已存在

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

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

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

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

1 回答

  • 5

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

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

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

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

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

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

相关问题