【发布时间】:2020-04-02 06:25:44
【问题描述】:
我无法使用资产获取正确的图像 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');
}
DB 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>
存储路径
HTML 源代码
正如您在上述参考资料中看到的那样,为了获得正确的 URL,我必须将 storage 添加到 asset('storage/'. $post->image) 中
【问题讨论】:
-
试试
/storage/posts/ ,它应该可以工作 -
此链接可能会有所帮助:stackoverflow.com/questions/30191330/…
-
@mightyteja 这个我知道并且已经有一个符号链接的存储文件夹。我的问题是如何避免在路径中添加
storage文件夹,以便我可以使用表格列$post->image直接获取图像。请阅读有问题的最后一行。 -
你可以创建你的自定义助手来代替
asset。看看stackoverflow.com/questions/43493148/…