在Laravel 8 live wire中显示图像

在Laravel 8 live wire中显示图像,laravel,laravel-8,laravel-livewire,Laravel,Laravel 8,Laravel Livewire,我已经安装了laravel 8和新安装的LiveWire身份验证脚手架,但当我添加图像时,它不会显示,如果我尝试在aq新选项卡中加载图像,它会重定向到索引页面 我添加了如下图像 <img src="{{asset( Auth::user()->profile_photo_url) }}" /> profile\u photo\u url)}/> 我可能做错了什么或遗漏了什么?快速答案 您不必使用asset()来显示图像,您可以在该属性中随时获得完整的图像

我已经安装了laravel 8和新安装的LiveWire身份验证脚手架,但当我添加图像时,它不会显示,如果我尝试在aq新选项卡中加载图像,它会重定向到索引页面

我添加了如下图像

<img src="{{asset( Auth::user()->profile_photo_url) }}" />
profile\u photo\u url)}/>
我可能做错了什么或遗漏了什么?

快速答案 您不必使用
asset()
来显示图像,您可以在该属性中随时获得完整的图像URL

user()->profile\u photo\u url}”/>
长话短说 如果您找到
profile\u photo\u url
属性的源代码,该属性可以在
Laravel\Jetstream\HasProfilePhoto
trait中找到,您将看到其定义为

/**
 * Get the URL to the user's profile photo.
 *
 * @return string
 */
public function getProfilePhotoUrlAttribute()
{
    return $this->profile_photo_path
                ? Storage::disk($this->profilePhotoDisk())->url($this->profile_photo_path)
                : $this->defaultProfilePhotoUrl();
}
这意味着,如果有个人资料照片,则获取定义了个人资料照片的磁盘的URL——否则,获取默认的URL(使用
ui avatars.com

因此,这意味着我们必须了解
Storage::disk(..)->url(..)
方法,并找出我们正在使用的磁盘。默认磁盘是公共磁盘(您可以相信我的话,也可以在同一特性中检查
profilePhotoDisk()
方法)


所以我们现在知道照片将被存储在公共磁盘下的存储器中。接下来,我们需要弄清楚该方法的作用。它基本上生成了实际图像的路径,所有这些都可以在图像soruce标记中使用。这反过来意味着您不需要通过
asset()
方法运行
profile\u photo\u url
属性!另一个原因是,如果源是外部的,您将无法获得实际图像,即
ui avatars.com

中的默认图像。我注意到应用程序url中有一个错误,并将其更改为,但仍然无法显示图像