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

Laravel共享主机与本地环境图片链接404问题解决方案咨询

Laravel共享主机部署后Storage图片404解决方案

  • 重新创建Storage符号链接
    本地环境执行php artisan storage:link会在public目录生成指向storage/app/public的软链接,但共享主机部署时这个链接常丢失或未同步:

    • 能SSH登录主机的话,直接运行命令:php artisan storage:link
    • 无SSH权限时,临时在routes/web.php添加一段路由,访问一次后立即删除:
      Route::get('/create-storage-link', function () {
          $target = storage_path('app/public');
          $link = public_path('storage');
          if (!file_exists($link)) {
              symlink($target, $link);
              return 'Storage链接创建成功';
          }
          return 'Storage链接已存在';
      });
      
      部署后访问https://www.api.dormi.co.tz/create-storage-link,确认成功后删掉这段路由。
  • 检查文件与文件夹权限
    共享主机权限限制严格,需确保:

    • storage/app/public/images文件夹权限设为755
    • 文件夹内图片文件权限设为644
    • 部分主机要求将文件用户组改为web服务器用户(如www-data),可通过FTP工具修改,或联系主机商调整。
  • 确认网站根目录指向public文件夹
    多数共享主机默认根目录为public_html,若Laravel项目的public目录未对应到这里会引发问题:

    • 优先通过主机控制面板(如cPanel)将网站根目录修改为Laravel项目的public文件夹
    • 无法修改根目录时,将public内所有文件移至public_html,并修改public_html/index.php中的路径:
      // 原代码
      require __DIR__.'/../vendor/autoload.php';
      $app = require_once __DIR__.'/../bootstrap/app.php';
      
      // 修改为(假设项目文件存于根目录的laravel-project文件夹)
      require __DIR__.'/../laravel-project/vendor/autoload.php';
      $app = require_once __DIR__.'/../laravel-project/bootstrap/app.php';
      
  • 应急方案:手动复制文件
    若以上方法均无法实施,可临时将storage/app/public/images内的图片手动复制到public/images文件夹,此时访问https://www.api.dormi.co.tz/images/305834409.jpg即可打开图片,但后续上传的图片不会自动同步,建议优先解决软链问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:06:11