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

Laravel线上服务器symlink创建成功后浏览器无法访问storage文件URL

Laravel 线上服务器 storage 软链接无法访问资源排查方案
  • 第一步:检查 Web 服务器软链接支持配置
    • Nginx 环境需要确认站点配置中未禁用软链接,在对应 server 或 location 块添加/修改配置:disable_symlinks off;,配置示例:
      location / {
          root /home/www/thetripclub/public;
          index index.php index.html;
          disable_symlinks off;
      }
      
    • Apache 环境需要确认站点 .htaccess 或虚拟主机配置中开启了 Options FollowSymLinks
  • 第二步:校验目录与文件权限
    线上环境默认权限控制较严格,需保证项目目录的所有者与 Web 服务器运行用户(通常为 www、www-data、apache 等)一致,且文件有可读权限,执行以下命令修正:
    # 修正目录所有者,需替换为你服务器实际的Web运行用户
    chown -R www:www /home/www/thetripclub
    # 修正目录权限
    chmod -R 755 /home/www/thetripclub/storage
    chmod -R 755 /home/www/thetripclub/public
    
  • 第三步:校验软链接路径有效性
    执行命令 ls -la /home/www/thetripclub/public/storage 查看软链接指向的路径是否为绝对路径、且指向正确的 storage/app/public 目录。若为相对路径或指向错误,可手动创建绝对路径软链接覆盖原有软链接:
    ln -sf /home/www/thetripclub/storage/app/public /home/www/thetripclub/public/storage
    
  • 第四步:校验 Web 根目录与静态资源规则
    确认 Nginx/Apache 配置中站点的 root 参数指向的是项目的 public 目录,而非项目根目录,即路径为 /home/www/thetripclub/public,否则无法正确匹配 /storage/xxx 静态资源路径。
  • 第五步:校验 Laravel 配置与路由冲突
    检查 config/filesystems.php 中 public 磁盘的 url 配置是否为默认的 /storage,未被自定义修改;同时检查是否存在路由前缀为 /storage 的自定义路由,该类路由会优先于静态资源生效,导致资源无法访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 18:06:03