图像未显示在视图中,Laravel

rn0zuynd  于 2023-03-13  发布在  其他
关注(0)|答案(6)|浏览(140)

在我的Laravel项目中,我尝试用blade加载一个图像到我的视图中,但是它显示为一个断开的链接。我用firebug检查它,src指向图像,但是没有显示任何东西。
我的图像位于我的项目的公共/images/users/3/profilePictures/
下面是我在view.blade.php中的<img>

<img class="com-profile-picture" src="images/users/{{ $follower->id }}/profilePictures/50thumb-{{ $follower->profilePicture->url }}" alt="{{ $follower->first_name }}&nbsp;{{ $follower->last_name }} Profile" width="50" height="50">

然而,当我加载页面时,我得到这个:

当我用firebug检查图像时,我看到了这个:

这是正确的源代码,并且映像确实存在于我的public/images/users/3/profilePictures/目录中
有人知道为什么会这样吗?

6ioyuze2

6ioyuze21#

这可能是因为您所在的路由不代表基本URL。您应该生成相对于public/文件夹的资产URL。请使用URL::asset('path/to/asset')生成URL。

{{ URL::asset("images/users/{$follower->id}/profilePictures/50thumb-{$follower->profilePicture->url}") }}

或者正如@lukasgeiter提到的,您可以简单地使用asset('path/to/asset')助手。

vhmi4jdf

vhmi4jdf2#

你可以试试

php artisan storage:link

否则你可以用这个
.env文件中问题(链接损坏错误)的简单修复

APP_URL=http://localhost

将替换为

APP_URL=http://localhost:8000

那么这个问题就解决了。

kq0g1dla

kq0g1dla3#

删除已经生成的符号链接,然后运行以下命令

php artisan storage:link
9rnv2umw

9rnv2umw4#

如果您使用是laravel,请考虑从laravel控制的文件夹中排除公用文件夹或以.htacccess存储公用文件的任何文件夹。
在.htaccess中这样做
# Exclude directory from rewriting RewriteRule ^(public/) - [L]

qzwqbdag

qzwqbdag5#

之前的储存位置(不工作):

<img src="{{asset('storage/app/public/media/productImages/'.$list->image)}}" alt="" srcset="">

工作储存位置:

<img src="{{asset('storage/media/productImages/'.$list->image)}}" alt="" srcset="">

否则请尝试:
1.正在删除公用文件夹中创建的所有链接/快捷方式文件夹
1.然后通过运行以下命令重新创建链接:
php工匠存储:链接

rta7y2nd

rta7y2nd6#

Goto public Folder
删除存储快捷方式然后为storage文件夹Create ShortcutStorage Folder创建另一个快捷方式然后运行php artisan storage:link

相关问题