You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel如何用绝对路径显示图片?线上部署图片加载失败求助

解决方案

按以下步骤排查并解决问题:

1. 确认Storage软链接已创建

Laravel 中storage/app/public目录的文件需通过public/storage软链接对外访问,本地开发时php artisan storage:link会自动创建,但线上部署时通常需要手动执行:

  • SSH 连接服务器,进入项目根目录运行命令:
    php artisan storage:link
    
  • 若为无法执行 Artisan 的共享主机,可在文件管理器中手动创建软链接:在public目录下创建指向../storage/app/public的符号链接,命名为storage。
  • 应急方案(不推荐长期使用):直接将storage/app/public下的图片文件夹复制到public目录,但后续更新图片需同步复制。

2. 核对文件实际存储路径

你提到图片存储在storage/app/public/Images目录,但代码中使用的是storage/ServiceImages和storage/ActualityImages,需确认路径匹配:

  • 若实际目录为storage/app/public/ServiceImages和storage/app/public/ActualityImages,则代码无需修改;
  • 若图片确实在storage/app/public/Images下,需调整代码路径:
    <div class="card-bg" style="background-image: url('{{ asset('storage/Images/ServiceImages/' .$service->service_image) }}');" ></div>
    
    <img src="/storage/Images/ActualityImages/{{$actualite->actuality_image}}" class="img-fluid" alt="" style="height: 200px; object-fit: cover;">
    

3. 检查文件与目录权限

线上服务器权限配置不当会导致无法读取图片:

  • 给storage目录及其子目录设置755权限,文件设置644权限:
    chmod -R 755 storage/
    chmod -R 644 storage/app/public/
    
  • 确保 Web 服务器用户(如www-data、apache)拥有该目录的读取权限。

4. 确认.env中的APP_URL配置

asset()函数依赖.env文件的APP_URL生成正确路径,线上需设置为你的实际域名:

APP_URL=https://your-production-domain.com

若使用相对路径/storage/...,需确保域名根目录指向项目的public文件夹,否则路径会失效。

内容的提问来源于stack exchange,提问作者Alain Kazadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 03:41:04