首页 > 解决方案 > 在 laravel PHP 中加载图像

问题描述

这里发生了奇怪的事情。由于某种原因,图像在一个页面上正确加载,但是我使用的确切代码在另一页面上不起作用。

有效的代码:index.blade.php

@if(count($posts) > 1)
    @foreach($posts as $post)
        <div class= "well">
            <h2><a href="/posts/{{$post->id}}">{{$post->title}}</a></h2>
            <small>{{$post->body}}</small>      
            <br>
            <img src="{{$post->image}}" alt="profile Pic" height="200" width="200">
        </div>
        <br>
        <br>
        @endforeach

不起作用的代码:Show.blade.php

<h1>{{$post->title}} </h1>
<br>
<h2>{{$post->body}}</h2>  
<br>
<img src="{{$post->image}}" alt="profile Pic" height="250" width="250">
<div class= 'Info'>
<br>

PostsController.php

      public function show($id)
{
    $post = Post::find($id);
    $review = Review::all()->where('post_id', $id);
    return view('posts.show', compact('post', 'review'));



}

我在 show.blade.php 上的 img src 部分有问题。其他所有内容(例如标题和正文)都显示,但该页面上的图像未显示。有人有这个问题吗?

标签: phplaravel

解决方案


您可以使用该url方法获取给定文件的 URL。

<img src="{{ Storage::url($post->image) }}" alt="profile Pic" height="250" width="250">

此外,要使public磁盘可以从 Web 访问,您应该创建一个从public/storage到的符号链接storage/app/public

要创建符号链接,您可以使用storage:linkArtisan 命令:

php artisan storage:link


推荐阅读