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

时间:2018-03-25 07:18:29

标签: php laravel storage laravel-5.6

我正在尝试在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我认为是正确的。

但是,点击该链接会重定向到主页。

2 个答案:

答案 0 :(得分:5)

href是正确的,但这不是问题。问题是链接位置存在文件。它不存在,因为你正在寻找。

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

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

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

首先检查您的本地服务器是否遵循上面列出的laravel约定(以及文档中),然后,在上传到您的服务器后,再次尝试storage:link命令,并且,只要您不这样做

请注意我在这里完成的工作是解释您对该目录已经存在的错误消息。

答案 1 :(得分:0)

如果你仍然坚持这个问题,这对我有用:

就我而言,我必须将 .env 文件中的 APP_URL 更改为我网站的名称。它默认为 http://localhost。一旦我改变它,一切都完美无缺。