Laravel 刀片模板中的图像路径问题
Posted
技术标签:
【中文标题】Laravel 刀片模板中的图像路径问题【英文标题】:Image path problem in Laravel blade template 【发布时间】:2019-08-08 15:19:45 【问题描述】:在我的 laravel 项目中,图片未显示。我正在使用航海者管理面板。
在数据库中image name
是
banners\March2019\xqem6GRUtqSU6pyWZRDJ.jpg
在刀片模板中使用以下代码显示图像
<img class="d-block w-100" src=" url('/images/'.$data->banner_image) " data-color="lightblue" alt="First Image">
通过检查元素,我得到如下图像源
http://localhost:8000/images/bannersMarch2019xqem6GRUtqSU6pyWZRDJ.jpg
在这条路径bannersMarch2019xqem6GRUtqSU6pyWZRDJ.jpg
中没有slash
。但实际路径是banners/March2019/xqem6GRUtqSU6pyWZRDJ.jpg
。
由于此路径问题,图像未显示。 所以我的问题是为什么有 no slash ?我该如何解决?
请有人帮助我。提前致谢。
【问题讨论】:
$data->banner_image
的输出是什么??
@InzamamIdrees...而我的控制器中的dd
显示banners\March2019\xqem6GRUtqSU6pyWZRDJ.jpg
你确定dd的输出是banners\\March2019\\xqem6GRUtqSU6pyWZRDJ.jpg。也许您必须在 Controller 中重新检查它。
@benji127...而dd
结果是banners\March2019\xqem6GRUtqSU6pyWZRDJ.jpg
... 而return
结果是banners\\March2019\\xqem6GRUtqSU6pyWZRDJ.jpg
尝试这样做:src=" url('/images') /!!$data->banner_image!!"
【参考方案1】:
我相信这是 voyeger 中的一个错误。保存到 db 时媒体资产路径中的反斜杠。您可以使用解决它,
$output = str_replace('\\', '/', $data->banner_image);
您可以查看此帖子了解更多详细信息:https://github.com/the-control-group/voyager/issues/2834#ref-commit-0d6bffb
【讨论】:
【参考方案2】:仔细检查您的 config/filesystems.php 存储变量,您必须将图像上传/放置在
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
这里的“根”索引决定了文件在视图中显示后的位置,默认情况下,它位于 storage/app/public
【讨论】:
【参考方案3】:请在下面试试这个。它应该可以工作。
<img class="d-block w-100" src=" url('/images/'. '/' . $data->banner_image) " data-color="lightblue" >
【讨论】:
以上是关于Laravel 刀片模板中的图像路径问题的主要内容,如果未能解决你的问题,请参考以下文章