图像未在Laravel 4 Framework中显示

时间:2014-11-17 21:40:15

标签: php mysql laravel blade

它显示图像index.blade.php http://imgur.com/hZshMrl很好,当我点击{{link_to_action(PostController @ show','阅读博客'}}下一页拒绝显示图像。即使我检查元素检查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>

Postcontroller.php

public function show($number)
{
    //
    $post = Post::find($number);


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

Mysql workbench和&#34; posts&#34;表

我试过那些 {{{$ post-&gt; user-&gt; img_path}}} {{$ post-&gt; img_path}} {{$ post-&gt; user-&gt; img_path}} {{$ post-&gt; img_path}}

它没有成功显示图像破坏。

2 个答案:

答案 0 :(得分: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

这会将网站的根网址添加到图片的路径中。

答案 1 :(得分:0)

使用asset helper

{{ asset($post->img_path) }}

这会在您的完整域

中生成绝对路径