Laravel:图片没有加载

时间:2015-08-04 09:28:56

标签: php image laravel

我正在尝试在Laravel中加载图像。图像正在header.blade.php文件中加载。它在其他页面上工作得很好,但是当谈到localhost:8000/edit/id时,它只是不起作用。我正在加载像这样的图像:

<a href="{!! URL::to('/') !!}">
   <img src="images/logo.png" />
</a>

我的路线:

Route::get('edit/{id}', array('uses' => 'HomeController@edit'));

我的控制器:

 public function edit($id) {
    $reg = Register::find($id);
    $user = User::where('email', Session::get('email'))->first();
    if ($reg->user_id == $user->id) {
        return View::make('edit')
                        ->with('id', $id);
    } else {
        return Redirect::to('dashboard')->with('wrong', 'Sorry! Something Went Wrong!');
    }
}

我的图片目录:public/images/logo.png

它在localhost:8000/about等其他网页上运行正常,但它在localhost/edit/2上没有任何帮助吗?

3 个答案:

答案 0 :(得分:5)

问题在于,当您使用网址时,它不是在应用程序的根文件夹中查找图像,而是在当前位置查找。

因此,当您访问localhost / edit / 2时,它正在localhost / edit中查找图像,而不是在localhost中查找。

尝试通过在图片的开头添加斜杠来更改代码

<a href="{!! URL::to('/') !!}">
   <img src="images/logo.png" />
</a>

<a href="{!! URL::to('/') !!}">
   <img src="/images/logo.png" />
</a>

此外,您应该尝试使用laravel方式,如下所示:

{{ HTML::image('images/logo.png', 'logo') }}

答案 1 :(得分:3)

尝试

{{ HTML::image('images/logo.png', 'logo') }}

输出就像

<img src="http://your.url/images/logo.png" alt="logo">

您也可以使用浏览器中的inspect元素检查图像路径

答案 2 :(得分:1)

const urlRegex = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/;
this.form = this.fb.group({
      s_url: ['', [Validators.required, Validators.pattern(urlRegex)]],
    });

它将加载您的图片,否则,出于安全原因,请检查图像的路径以及您只能从公共路径加载图像的文件夹的特权