Laravel开发服务器无法访问public/media下文件的问题求助
问题原因及解决方案
核心问题
你的filesystems.php里public磁盘的url配置多了多余的/public前缀。Laravel项目的public目录本身就是Web服务器的根目录,访问静态资源时不需要在URL里额外添加public前缀。
当前生成的URL是http://localhost:8000/public/media/3/profile_3.png,但实际服务器上的文件路径是public/media/3/profile_3.png,对应正确的URL应该是http://localhost:8000/media/3/profile_3.png,多出来的public导致Web服务器找不到对应文件,返回404错误。
修复步骤
- 修改
filesystems.php中public磁盘的url配置:'public' => [ 'driver' => 'local', 'root' => public_path().'/media', 'url' => env('APP_URL').'/media', // 移除此处的/public前缀 'visibility' => 'public', ] - 清除Laravel配置缓存(若之前开启了缓存):
php artisan config:clear - 重新生成图片链接(如果旧链接已存入数据库或缓存,需同步更新)
调整后生成的URL会是http://localhost:8000/media/3/profile_3.png,浏览器即可正常访问对应文件。
内容的提问来源于stack exchange,提问作者Burak ER
相关产品推荐
相关产品推荐

