从视图中的存储加载图像的最佳实践
Best practice for loading image from storage in view
我的存储文件夹中有图像,我想向用户显示这些图像,我正在寻找处理此问题的最佳方法。
我有两个选择,第一个是使用asset()
加载用户图像:
<img class="avatar" src="{{ asset('/storage/avatars/' . Auth::user()->avatar) }}" alt="">
或者我可以将 Storage::
门面与我创建的自定义磁盘(称为 user_data)一起使用:
<img class="avatar" src="{{ Storage::disk('user_data')->url(Auth::user()->avatar) }}" alt="">
哪种方式更好?我在网上看到的每个答案都使用 asset()
但我发现从可维护性的角度来看 Storage::
更好,因为我们没有对路径 /storage/avatars/
.
进行硬编码
在 blade 模板中使用 Storage::
facade 可以吗?
您使用 Storage::
外观的第二种方法完全可以在您的视图中使用。正如您所说,从可维护性的角度来看,它非常棒,如果您将来需要这样做,可以让您轻松更改 user_data
的路径。使用 Laravel 提供的内置存储功能还可以让您在处理具有多个服务器的更大规模应用程序时,或者如果您的用户数据存储在 S3 存储桶中时,不再头疼。通过 filesystem.php
中的磁盘进行更改和管理将非常快速。
您可能看到 asset()
经常在线使用的原因是磁盘超出范围,许多小规模项目和教程不需要。因为它也用于加载图像、CSS、JS 和其他 public 文件。
我的存储文件夹中有图像,我想向用户显示这些图像,我正在寻找处理此问题的最佳方法。
我有两个选择,第一个是使用asset()
加载用户图像:
<img class="avatar" src="{{ asset('/storage/avatars/' . Auth::user()->avatar) }}" alt="">
或者我可以将 Storage::
门面与我创建的自定义磁盘(称为 user_data)一起使用:
<img class="avatar" src="{{ Storage::disk('user_data')->url(Auth::user()->avatar) }}" alt="">
哪种方式更好?我在网上看到的每个答案都使用 asset()
但我发现从可维护性的角度来看 Storage::
更好,因为我们没有对路径 /storage/avatars/
.
在 blade 模板中使用 Storage::
facade 可以吗?
您使用 Storage::
外观的第二种方法完全可以在您的视图中使用。正如您所说,从可维护性的角度来看,它非常棒,如果您将来需要这样做,可以让您轻松更改 user_data
的路径。使用 Laravel 提供的内置存储功能还可以让您在处理具有多个服务器的更大规模应用程序时,或者如果您的用户数据存储在 S3 存储桶中时,不再头疼。通过 filesystem.php
中的磁盘进行更改和管理将非常快速。
您可能看到 asset()
经常在线使用的原因是磁盘超出范围,许多小规模项目和教程不需要。因为它也用于加载图像、CSS、JS 和其他 public 文件。