图像未在 Laravel 4 框架中显示

Posted

技术标签:

【中文标题】图像未在 Laravel 4 框架中显示【英文标题】:Image not displaying in Laravel 4 Framework 【发布时间】:2015-01-14 22:37:31 【问题描述】:

它显示图像 index.blade.php http://imgur.com/hZshMrl 很好,当我点击 link_to_action(PostController@show', 'Read Blog' 下一页它拒绝显示图像时。即使我签入元素检查 img 文件以打开 src="img/1.img' 没有可用的图像。当我返回 index.blade.php 时它恢复正常。这是为什么?

<div class="container">

@forelse($posts as $post)
    <div class="blogs">
        <h3> $post->title </h3>
        <p class="info">  $post->content  </p>
        <p class="info"> by:  $post->user->first_name   $post->user->last_name  </p>
        link_to_action('PostController@show','Read Blog', array($post->id))
        <span class="posted" style="text-align:left"> $post->created_at->format(Post::DATE_FORMAT)</span>
    @if ($post->img_path)
        <p style="text-align:right"><img class="img-upload" src=" $post->img_path " style="max-width: 25%">
    @endif
    </div>
@empty
      <p>No Blogs</p>
@endforelse
 $posts->links() 

</div>

show.blade.php http://imgur.com/WdtkyAt

    <div class="container">


    @if ($post->img_path)
        <img class="img-upload" src=" $post->img_path " style="max-width: 25%">
    @endif

    </div>

后控制器.php

public function show($number)

    //
    $post = Post::find($number);


    return View::make('posts.show')->with('post', $post);

mysql 工作台作为“posts”表。

我已经尝试过那些 $post->user->img_path $post->img_path $post->user->img_path $post->img_path

它不成功,它的显示破坏了图像。

【问题讨论】:

【参考方案1】:

我想这是因为存储在数据库中的图像文件名引用是相对的。您需要输入完整路径,因为如果您转到 http://example.com/posts/1,您的模板将在名为的目录中查找 img/filename.jpg 帖子,不存在。

相反,您应该使用绝对 URL。如果您的图像只是存储在 public/img 中,那么您可以在 show.blade.php 模板中执行类似的操作:

@if ($post->img_path)
    <img class="img-upload" src=" asset($post->img_path) " style="max-width: 25%">
@endif

这会将网站的根 URL 添加到您的图片路径。

【讨论】:

【参考方案2】:

使用asset helper

 asset($post->img_path) 

这会生成一个包含您的完整域的绝对路径

【讨论】:

以上是关于图像未在 Laravel 4 框架中显示的主要内容,如果未能解决你的问题,请参考以下文章

Vue组件未在laravel中显示

@include 之后刀片未在刀片中显示内容 - Laravel 4.2

laraver框架学习------工厂模型填充测试数据

手把手教你跑 Larave 框架实战笔记系列之一

从资源文件夹中获取图像 - Laravel

Larave中CSRF攻击