我无法使用资产获取正确的图像URL以在视图中显示。生成的URL需要storage
,当我使用asset
函数时,URL丢失了,我必须在storage
asset('storage/' . $post->image)
我不明白为什么Laravel不会自动添加storage
?
我使用以下命令创建了存储文件夹的符号链接
php artisan storage:link
问题:
我正在寻找的是storage
文件夹,它应该动态添加到路径中,因此我只需要传递$post->image
。
public function store(PostRequest $request)
{
// upload the image to storage
$image = $request->image->store('posts', 'public');
// create the post
Post::create([
'title' => $request->title,
'description' => $request->description,
'content' => $request->content,
'image' => $image,
]);
// redirect with flash message
return redirect(route('posts.index'))->with('success', 'Post is created');
}
image
列存储路径posts/ibexiCvUvbPKxzOLSMHQKPpDq7eZXrFA0stBoPfw.jpeg
<tbody>
@foreach($posts as $post)
<tr>
<td>
<img src="{{asset($post->image)}}" width="60" height="60" alt="">
</td>
<td>{{ $post->title }}</td>
</tr>
@endforeach
</tbody>
如您在上述参考资料中所见,要获取正确的URL,我必须将storage
添加到asset('storage/'. $post->image)
答案 0 :(得分:4)
使用Storage::url()
函数
<tbody>
@foreach($posts as $post)
<tr>
<td>
<img src="{{ Storage::url($post->image)}}" width="60" height="60" alt="">
</td>
<td>{{ $post->title }}</td>
</tr>
@endforeach
</tbody>
答案 1 :(得分:0)
另一种有用的方法是在.env文件中使用ASSET_URL,例如:
APP_URL=http://localhost:8000
ASSET_URL = http://localhost:8000/storage
我在APP_URL上附加了“存储”以更改资产助手功能的默认补丁,然后您可以在视图中使用资产功能,例如:
<img src="{{asset($post->image)}}" width="60" height="60" alt="">
我希望这种方式可以为您提供帮助。