Laravel jetstream 无法加载个人资料照片

问题描述 投票:0回答:2

我用jetstream/inertia创建了新的laravel 9项目

laravel new testProject
cd testProject
composer require laravel/jetstream
php artisan jetstream:install inertia
npm install
npm run dev
php artisan serve

我对项目所做的就是在 .env 文件中设置数据库访问权限并取消注释 profilePhotos 功能

'features' => [
        // Features::termsAndPrivacyPolicy(),
         Features::profilePhotos(),
        // Features::api(),
        // Features::teams(['invitations' => true]),
        Features::accountDeletion(),
    ],

我也跑步

php artisan storage:link

一切看起来都不错,但是在个人资料信息表单中加载个人资料照片后,它就会出现,直到页面重新加载。重新加载后,我看到我的全名和毫无根据的图像图标。在标题的右上角我看到同样的事情。 在浏览器中我看到错误消息

Failed to load resource: the server responded with a status of 404 (Not Found)

页面尝试从

加载图像

存储/个人资料照片/P2Fr1yHE0UenDAo5REUWEEWFcwq7esjLu0loP9Xa.png

在我的项目中图像保存在

存储/应用程序/公共/个人资料照片/P2Fr1yHE0UenDAo5REUWEEWFcwq7esjLu0loP9Xa.png

并链接到公共文件夹

公共/存储/个人资料照片/P2Fr1yHE0UenDAo5REUWEEWFcwq7esjLu0loP9Xa.png

我不明白为什么我的照片没有从正确的目录加载。

php laravel filesystems laravel-jetstream
2个回答
1
投票

我找到了解决办法。在供应商/laravel/jetstream/src/HasProfilePhoto.php中的profilePhotoUrl函数我改变了

? Storage::disk($this->profilePhotoDisk())->url($this->profile_photo_path)

? Storage::disk(config('profile_photos_disk'))->url($this->profile_photo_path)

据我了解, $this->profilePhotoDisc() 返回错误的答案,即使我只是将其替换为“本地”,它仍然有效,所以我有点困惑,但最终它有效了


0
投票

上述步骤均不适用于我的新项目,但如果您创建新的 jetream laravel 项目并仅启用配置文件功能并更改 .env 文件中的 url 并清除缓存并运行 php artisanserve 命令希望,那么它将为您工作,因为在我的以前的项目没有任何反应,但上面提到了新项目的简单步骤

© www.soinside.com 2019 - 2024. All rights reserved.