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

Laravel项目资源无法加载求助:上传图片无法正常显示

解决Laravel存储文件无法通过/storage路径访问的问题

以下是针对问题的排查和解决步骤:

  • 确认符号链接有效性
    检查项目根目录下的public/storage是否为指向../storage/app/public的有效符号链接:

    • Linux/macOS:在终端进入项目根目录,执行ls -l public/,查看storage的指向是否正确。
    • Windows:本地环境下php artisan storage:link可能因权限失败,需手动在public文件夹创建storage快捷方式,目标指向..\storage\app\public;若使用WSL,必须在WSL终端内执行php artisan storage:link。
  • 检查文件与目录权限

    • Linux/macOS环境下,执行以下命令确保存储目录有正确的读写权限:
      chmod -R 755 storage/
      chown -R www-data:www-data storage/ # 适配Apache/Nginx运行用户
      
    • Windows环境下,右键点击storage目录,选择「属性」-「安全」,确保当前用户和Web服务用户(如IIS_IUSRS)有读取权限。
  • 验证文件存在性与路径匹配
    确认storage/app/public/logo/eoFICKlGoU8yDoJrLGYfKFsx6Yq4uGvDs5yC9WQ7.png文件真实存在,且文件名完全匹配(Linux环境大小写敏感,注意文件名大小写是否一致)。

  • 强制重新生成符号链接
    执行命令覆盖原有链接,避免旧链接异常:

    php artisan storage:link --force
    
  • 排查路由冲突
    检查项目路由文件(如routes/web.php)是否存在匹配/storage/*的自定义路由,这类路由会拦截静态文件请求,导致无法直接访问。可暂时注释可疑路由后测试。

  • 使用Laravel辅助函数生成访问URL
    避免手动拼接URL,改用Laravel内置函数生成正确地址:

    // 方式1:使用asset辅助函数
    echo asset('storage/logo/eoFICKlGoU8yDoJrLGYfKFsx6Yq4uGvDs5yC9WQ7.png');
    
    // 方式2:使用Storage门面
    echo Storage::url('logo/eoFICKlGoU8yDoJrLGYfKFsx6Yq4uGvDs5yC9WQ7.png');
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:45:40