Laravel上传图片无法显示但存储链接正常的问题求助
排查Laravel新项目图片无法访问的问题
1. 确认符号链接目标路径准确性
FTP中看到public/storage存在不代表路径指向正确,在服务器终端执行命令查看软链目标:
ls -l public/storage
正常应指向../storage/app/public,若路径不符(比如CyberPanel站点目录结构差异导致),重新生成软链时指定绝对路径:
php artisan storage:link --force # 或手动创建绝对路径软链 ln -s /你的新项目绝对路径/storage/app/public /你的新项目绝对路径/public/storage
2. 检查Web服务器站点配置
CyberPanel默认用Nginx,需确认站点配置未拦截storage目录的静态资源访问。检查Nginx配置中是否包含:
location /storage { try_files $uri $uri/ /index.php?$query_string; }
若存在异常rewrite规则会导致图片无法加载,修改配置后重启Nginx:
systemctl restart nginx
3. 修正文件权限与归属
避免仅使用o+w,让Web服务器用户(通常为www-data)拥有目录权限:
chown -R www-data:www-data storage bootstrap/cache chmod -R 775 storage bootstrap/cache
错误的用户归属会导致Web进程无法读取图片文件。
4. 验证.env文件APP_URL配置
确认新项目.env中的APP_URL与站点域名完全一致:
APP_URL=https://simplycar.es
asset()函数依赖该配置生成正确URL,配置错误会导致图片链接无效。
5. 确认图片实际上传位置
检查storage/app/public/fotos目录下是否存在对应图片文件,有时代码逻辑异常(如未捕获的上传错误)会导致仅数据库存了文件名,但实际文件未上传成功。
内容的提问来源于stack exchange,提问作者Francisco Flores
相关产品推荐
相关产品推荐

