首页 > 解决方案 > 尝试显示数据库中的图像时出现问题

问题描述

我正在尝试通过 显示我的数据库中的一行id,数据显示成功但图像未显示(显示断开的链接图标)。

这是index.blade.phphref行的位置:

<a href="singlepost/{{$products->id}}">
<img src="storage/{{$templates->image_path2}}">

路线:

Route::get('/singlepost/{id}', 'App\http\controllers\TemplatesController@getPostById')->name('single.post');

功能getPostById

public function getPostById($id){
    $products = DB::table('templates')->where('id', $id)->first();

    return view('singlepost', compact('products'));
}

singlepage.blade.php

<div class="row">
    <div class="col-lg-4">
        <img src="storage/{{$products->image_path}}">
    </div>
    <div class="col-lg-7">
        <h2>{{$products->name}}</h2>
        <p>{{$products->description}}</p>
    </div>
</div>

标签: phplaravellaravel-8

解决方案


引用可公开访问的文件时,您希望从/public/storage目录中执行此操作。目录中的文件应从该/storage/app/public目录映射到/public/storage使用符号链接,

您创建symlink使用:

php artisan storage:link

/storage/app/public完成后,现在可以访问in 中的资产,就好像它们存在于/public/storage. 使用asset助手获取您的图像。

<img src="{{ asset($templates->image_path2) }}" alt="Some alt tag ..." />

以上假设资产从/public/storage根目录的相对路径,如果您在子目录中有图像,您也需要包含它。

例如,如果您将图像放在img子目录中:

<img src="{{ asset('/img/' . $templates->image_path2) }}" alt="Some alt tag ..." />

推荐阅读