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

Laravel共享主机部署后存储图片加载失败跳转404问题咨询

解决共享主机上Laravel图片加载404的问题

这种共享主机分离核心文件和Web根目录的部署场景我碰到过很多次,咱们一步步排查解决:

1. 先确认Web根目录的核心配置是否正确

共享主机把public_html设为Web根,你需要把Laravel原public目录里的index.php和.htaccess复制到public_html下,然后修改index.php里的路径,指向laravelapp的核心文件:

// 修改这两行的路径,替换成你实际的服务器路径
require __DIR__.'/../laravelapp/vendor/autoload.php';
$app = require_once __DIR__.'/../laravelapp/bootstrap/app.php';

这一步错了的话,不仅图片,整个站点的路由和静态资源都可能出问题。

2. 修复Storage目录的访问链接

Laravel默认通过public/storage软链接访问存储的公开文件,但现在你的Web根是public_html,得调整这个链接:

方法一:创建软链接(推荐)

如果你的主机支持SSH或文件管理器的创建链接功能,执行绝对路径的软链接命令:

ln -s /home/你的用户名/laravelapp/storage/app/public /home/你的用户名/public_html/storage

(cPanel里可以通过文件管理器查看目录的绝对路径)

方法二:修改文件系统配置(无SSH时用)

如果没法创建软链接,直接修改laravelapp/config/filesystems.php里的public磁盘配置:

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

改完后记得清除配置缓存:能SSH就执行php artisan config:cache,不行的话就删除laravelapp/bootstrap/cache/config.php。

3. 检查你的上传代码逻辑

确保你是把图片存在public磁盘下,而不是默认的local磁盘(local磁盘存在storage/app,Web访问不到)。比如你的上传代码应该类似:

if($request->hasFile('file')){
    $filenameWithExt = $request->file('file')->getClientOriginalName();
    $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
    $extension = $request->file('file')->getClientOriginalExtension();
    $fileNameToStore = $filename.'_'.time().'.'.$extension;
    // 存在public磁盘
    $path = $request->file('file')->storeAs('public', $fileNameToStore);
    // 或者用更简洁的方式
    // $path = $request->file('file')->store('public');
}

上传后,图片应该出现在laravelapp/storage/app/public(软链接方式)或public_html/storage(修改配置方式)下。

4. 权限检查

确保以下目录有正确的读写权限:

  • laravelapp/storage 及子目录:权限设为755,文件设为644
  • public_html/storage 及子目录:同样设置755权限
    共享主机上如果是cPanel,右键文件/目录就能修改权限,注意不要设成777(不安全)。

5. 确认APP_URL配置

打开laravelapp/.env文件,确保APP_URL设置为你的实际域名:

APP_URL=https://你的域名.com

这样生成的图片URL才会是正确的https://你的域名.com/storage/xxx.jpg,不会出现路径错误。

按照上面的步骤一步步排查,应该就能解决图片加载404的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:41:37