您的问题是.env文件中的默认 APP_URL 设置:
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:6IJbdi+QYczKeLT7yOw3OgPsHucXn1KxVUb27hTQKpU=
APP_DEBUG=true
APP_URL=http://localhost
artisan serve 命令在http://127.0.0.1:8000上启动了应用程序,因此您相应地更改了 APP_URL:
APP_URL=http://127.0.0.1:8000
我不会推荐这个。有时,由于各种原因,该命令可能会将端口更改为 8001、8002 等。
$ php artisan serve
Starting Laravel development server: http://127.0.0.1:8000
Failed to listen on 127.0.0.1:8000 (reason: Address already in use)
Starting Laravel development server: http://127.0.0.1:8001
PHP 7.4.12 Development Server (http://127.0.0.1:8001) started
简单的解决方案
只需评论或将.env文件中的 APP_URL 留空:
#APP_URL=http://localhost
APP_URL=
这将从配置文件图像中删除 http://localhost 部分并解决问题:
<img src="/storage/profile-photos/photo.jpeg">
无论如何,您将在生产环境中拥有不同的.env文件。
此外
您在 config/filesystems.php 文件中做了一个小改动:
'public' => [
'driver' => 'local',
'root' => storage_path('/public/storage'),
'url' => env('APP_URL').'/public/storage/',
'visibility' => 'public',
],
原来的设置是:
'root' => storage_path('/app/public'),
它仅在您删除并重建符号链接后才起作用。
但是现在,在您的项目目录中,您可能会遇到这样的情况:
- 公共 - 存储
+ css -应用程序
+ js -公共
- 存储 -个人资料照片
-公共 -公共
-存储 -存储
-个人资料照片 -个人资料照片
.htaccess + 框架
favicon.ico + 日志
索引.php
混合清单.json
机器人.txt
网络配置
基本上,您制作了一个新磁盘。我想这不是故意的。
此外,您的个人资料照片的网址中可能有一些令人困惑的部分:
.../storage/public/storage/profile-photos/...。
您可以恢复到原始设置,删除附加文件夹,然后重建 sysmlink。
配置/文件系统.php
'disks' => [
//...
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
//...
],