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 刀片模板中的图像路径问题的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 模板显示路线中的两个刀片模板

laravel 制作自己的刀片文件路径

在 laravel 刀片模板中动态更改每个用户的背景图像

刀片模板中的Laravel重定向问题

如何从 Laravel5 中的刀片模板传递扩展主模板中的变量?

laravel 刀片模板中的覆盖部分抛出未定义的变量错误