在Laravel 8 live wire中显示图像
我已经安装了laravel 8和新安装的LiveWire身份验证脚手架,但当我添加图像时,它不会显示,如果我尝试在aq新选项卡中加载图像,它会重定向到索引页面 我添加了如下图像在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()来显示图像,您可以在该属性中随时获得完整的图像
<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中有一个错误,并将其更改为,但仍然无法显示图像