【问题标题】:Image is being stored correctly but can't display on Laravel Blade图像已正确存储但无法在 Laravel Blade 上显示
【发布时间】:2019-09-05 15:20:46
【问题描述】:

图像已正确存储在storage/app/public/images 文件夹中,但是当我尝试使用以下代码显示图像时,它什么也不返回。我还将附上我的图像控制器功能

我已经尝试了以下

<img src = "{{ asset('storage/app/public/images/artist.jpg') }}" />


<img class="rounded-circle" src="/storage/images/{{ $user->image }}" />

控制器功能

 public function update_image(Request $request){

    $request->validate([
        'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

    $user = Auth::user();

    $imageName = $user->id.'_image'.time().'.'.request()->image->getClientOriginalExtension();

    $request->image->storeAs('images',$imageName);

    $user->image = $imageName;
    $user->save();

    return back()
        ->with('success','You have updated image.');

    }

【问题讨论】:

  • 您是否设置了存储符号链接? laravel.com/docs/5.8/filesystem#the-public-disk
  • 是的@Alex,我已经做到了。它说当我再次尝试时它已经存在
  • “它什么也不返回”是什么意思?
  • @NicoHaase 图像未显示,我的意思是。
  • 好像一切正​​常,你只需要链接存储,使用php artisan storage:link命令

标签: php html laravel image


【解决方案1】:

那是因为您将图像存储在 storage 文件夹中,而不是 public 文件夹中。

运行php artisan storage:link

并在您的代码中写入&lt;img src = "{{ asset($user-&gt;image) }}" /&gt;

https://laravel.com/docs/5.5/filesystem#the-public-disk

【讨论】:

    【解决方案2】:

    您的 asset() 助手应指向以下内容:

    asset('storage/images/artist.jpg');
    

    这是因为可以在 public/storage 找到新的符号链接文件夹,并且 asset() 帮助程序创建到 public 文件夹的链接。从字符串中删除app/public 应该可以解决问题。

    【讨论】:

    • 我已经这样做了,我现在在那里再次尝试,它说它已经存在
    • 对不起,要写另一个答案
    • @John 更新了这个
    • 仍然没有出现
    • 能否确认图片的完整网址
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2020-01-07
    • 1970-01-01
    • 2015-02-17
    • 2014-07-23
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多