Laravel: 无法显示 Blade 文件中的图像

Laravel: Can't Display Image In Blade File

我试图在 blade 中显示图像。但它无法加载图像,它显示else语句

的图像
     <?php $user_image_path = 'images/user_images/' . $userDetails['image']; ?>
   
     @if(!empty($userDetails['image']) && file_exists($user_image_path))
          <img src=" {{ asset('images/user_images/'.$userDetails['image'])}}" alt="Cinque Terre">
     @else
          <img src="{{ asset('images/product_images/small/no_image.png') }}" alt="Cinque Terre">
     @endif

我还调试了获取图像的 if 语句上方的代码

 <?php $product_image_path = 'images/user_images/' . $userDetails['image']; ?>
   <?php
   echo "<pre>";
   print_r($user_image_path);
   die;
   ?>
@if(!empty($userDetails['image']))
    <img src="{{ asset('images/user_images/'.$userDetails['image'])}}" alt="Cinque Terre">
  • 在inspector中查看图片的src。大多数时候它给了我们错误的路径而不是 public 目录。
  • 其次,src里面有space。尝试删除 运行 那个。
  • 如果asset函数没有给出public目录路径,在.env中添加ASSETS_URL到/public

是你的if条件的第二个条件不匹配。 file_exists 函数无法定位图像文件。您要么必须提供 file_exists 的完整路径,要么将其删除:

@if(!empty($userDetails['image']))
      <img src="{{ asset('images/user_images/'.$userDetails['image'])}}" alt="Cinque Terre">
@else
      <img src="{{ asset('images/product_images/small/no_image.png') }}" alt="Cinque Terre">
@endif

尝试:

<img src="{{ !empty($userDetails['image']) ? asset('images/user_images/'.$userDetails['image']) : asset('images/product_images/small/no_image.png') }}" alt="Cinque Terre">

从上面对你的问题的评论来看,你似乎正在加载没有扩展名的图像。添加图像扩展

 <img src="{{  asset('images/user_images/'.$userDetails['image'].".png") }}" alt="">

或 .jpg

<img src="{{  asset('images/user_images/'.$userDetails['image']).".jpg" }}" alt="">

使用此代码:

<img src=" {{ !empty(asset('images/user_images/'.$userDetails['image'])) ? <img src="{{ asset('images/user_images/'.$userDetails['image'])}}" alt="Cinque Terre"> : <img src="{{ asset('images/product_images/small/no_image.png') }}" alt="Cinque Terre"> }}" alt="Cinque Terre">