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

部署在cPanel+Apache虚拟主机的Laravel应用图片加载失败排查

Laravel虚拟主机部署图片404问题解决方案

针对你遇到的Laravel虚拟主机部署后图片404问题,结合你的部署场景(Laravel主目录独立,public内容移至public_html,已创建storage软链接),给出以下排查和解决步骤:

  • 确认图片URL生成逻辑
    视图中必须使用Laravel官方助手函数生成图片链接,避免硬编码路径:

    • 存储在storage/app/public的图片,用storage('images/xxx.jpg')生成链接
    • 直接放在public_html下的静态图片,用asset('images/xxx.jpg')生成链接
      不要直接写/storage/images/xxx.jpg这类硬编码路径,防止服务器解析错误。
  • 检查文件与目录权限
    虚拟主机环境下权限配置是常见问题:

    • 确保laravel/storage及其子目录权限为755,目录内文件权限设为644
    • 确认public_html/storage软链接对应的源目录、文件权限符合要求,避免服务器因权限限制拒绝访问
  • 重新创建软链接(绝对路径方式)
    部分虚拟主机对相对路径软链接支持不佳,尝试用绝对路径重建:
    在SSH中执行(替换为你的实际用户目录):

    ln -s /home/your-username/laravel/storage/app/public /home/your-username/public_html/storage
    

    重建后在cPanel文件管理器中确认public_html/storage是否正确指向源目录。

  • 调整.htaccess规则
    当前.htaccess规则已包含静态文件放行,但可添加针对性规则确保图片不被路由拦截:
    在RewriteEngine On下方添加:

    # 直接放行图片资源
    RewriteRule ^storage/(.+\.(jpg|jpeg|png|gif|webp))$ - [L]
    

    同时确认cPanel中已启用mod_rewrite模块。

  • 清除Laravel缓存
    缓存可能导致路径解析异常,执行以下命令清除缓存:

    php /home/your-username/laravel/artisan config:clear
    php /home/your-username/laravel/artisan cache:clear
    php /home/your-username/laravel/artisan view:clear
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:45:29