我正在尝试在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
上没有任何帮助吗?
答案 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)]],
});
它将加载您的图片,否则,出于安全原因,请检查图像的路径以及您只能从公共路径加载图像的文件夹的特权