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

Laravel部署于GoDaddy后所有图片路径失效无法显示求助

解决GoDaddy上Laravel+Angular部署后图片无法显示的问题

我之前帮不少开发者处理过GoDaddy上Laravel部署的类似问题,你这种情况大概率是文件系统配置、存储路径或者软链接的问题,咱们一步步来排查解决:

1. 调整Laravel文件系统配置

首先打开你的Laravel项目根目录下的config/filesystems.php,找到disks里的public配置项。因为你把Laravel的public目录移到了public_html,所以需要确保root指向正确的路径:

'public' => [
    'driver' => 'local',
    'root' => '/home/website/public_html/storage', // 直接指向public_html下的storage目录
    'url' => env('APP_URL').'/storage',
    'visibility' => 'public',
],

如果你还是想用Laravel默认的storage/app/public目录,那root可以设为storage_path('app/public'),但这时候需要确保后续软链接配置正确。

2. 重新创建存储软链接(关键步骤)

GoDaddy共享主机对软链接支持有限,而且你的Laravel在public_html上级目录,没法直接用Laravel默认的php artisan storage:link命令(它会尝试从原public目录创建链接,而你已经把public移到public_html了)。

你可以通过两种方式创建软链接:

  • cPanel文件管理器操作:登录GoDaddy的cPanel,打开「文件管理器」,找到public_html目录,右键选择「创建新的链接」,链接名称填storage,链接目标填/home/website/laravel/storage/app/public(替换成你实际的Laravel根路径)。
  • SSH命令操作(如果主机允许SSH):执行以下命令
ln -s /home/website/laravel/storage/app/public /home/website/public_html/storage

3. 检查图片的存储与访问逻辑

  • 如果你是通过Laravel的Storage::disk('public')->put()存储图片,确保生成访问URL时用Storage::disk('public')->url('your-image.jpg'),这个URL会是https://your-domain.com/storage/your-image.jpg,要和Angular前端的引用路径匹配。
  • 如果是直接把图片放在public_html的子目录(比如public_html/images),那Angular里的图片引用要使用绝对路径/images/your-image.jpg,避免相对路径导致的404。

4. 验证权限设置

GoDaddy共享主机对目录权限有要求,确保:

  • Laravel项目下的storage目录权限设为755
  • public_html/storage(软链接或实际目录)的权限设为755
  • 图片文件的权限设为644

按这几步操作后,图片应该就能正常显示了。如果还是有问题,可以打开浏览器控制台看图片的404请求路径,对比实际存储路径,就能快速定位问题所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:21:27