我正在尝试在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
我认为是正确的。
但是,点击该链接会重定向到主页。
答案 0 :(得分:5)
href是正确的,但这不是问题。问题是链接位置存在文件。它不存在,因为你正在寻找。
上传时,请确保您没有在public/storage
上传真实目录。
在本地服务器上,您是否错误地在public/storage
创建了一个真实目录?
如果您这样做,您需要知道laravel约定是将文件存储在app目录的storage/app/public
目录中。
您自己不创建文件夹public/storage
。
您可以创建一个符号链接以将其链接到那里。这样,您放入storage/app/public
的内容也会出现,因为符号链接位于public/storage
。
首先检查您的本地服务器是否遵循上面列出的laravel约定(以及文档中),然后,在上传到您的服务器后,再次尝试storage:link
命令,并且,只要您不这样做1}}上有一个真实的目录,但只是一个链接,它应该有用。
请注意我在这里完成的工作是解释您对该目录已经存在的错误消息。
答案 1 :(得分:0)
如果你仍然坚持这个问题,这对我有用:
就我而言,我必须将 .env 文件中的 APP_URL 更改为我网站的名称。它默认为 http://localhost。一旦我改变它,一切都完美无缺。