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

Laravel部署至Windows XAMPP后storage目录图片返回404错误如何解决

问题根源

你当前采用的修改server.php为index.php、复制public/.htaccess到项目根目录的部署方式,没有修正Laravel默认的路径映射逻辑,核心问题有两点:

  • Laravel默认的公共存储URL生成规则,假设站点根目录直接对应项目的public文件夹,你部署在XAMPP的子目录ProjectFolderName下且未修改web根目录配置,生成的URL缺少/public路径段,和实际可访问路径不匹配。
  • 项目.env中的APP_URL参数未适配当前部署路径,导致生成的链接前缀错误。

解决方案

方案1:标准部署(推荐,无后续路径兼容问题)

这是Laravel官方推荐的部署方式,从根源解决所有路径问题:

  • 打开XAMPP的Apache配置文件httpd.conf,或单独配置虚拟主机,将站点的DocumentRoot指向你项目的public文件夹,例如项目路径为C:/xampp/htdocs/ProjectFolderName,则设置DocumentRoot = "C:/xampp/htdocs/ProjectFolderName/public"
  • 修改项目根目录下.env文件的APP_URL参数为http://localhost(若配置了自定义虚拟主机域名则替换为对应域名)
  • 重启Apache服务即可正常访问。

方案2:临时适配方案(适合本地快速测试,不修改Apache配置)

如果不想调整Apache的web根目录,可通过修改Laravel配置适配当前部署结构:

  • 打开项目根目录的.env文件,修改APP_URL为http://localhost/ProjectFolderName/public
  • 打开config/filesystems.php,找到public磁盘的配置块,确认url参数配置如下:
'public' => [
    'driver' => 'local',
    'root' => storage_path('app/public'),
    'url' => env('APP_URL').'/storage',
    'visibility' => 'public',
],
  • 在项目根目录执行命令清除配置缓存:php artisan config:clear

注意:无论采用哪种方案,都要先确保你已经执行过php artisan storage:link命令,创建了public/storage到storage/app/public的软链接,这是Laravel公共存储资源可访问的前提。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:36:02