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

Heroku部署Laravel应用遇500错误:Vite资源缺失求助

解决Heroku部署Laravel应用出现的500错误(Vite资源找不到)

问题根源

本地开发时跑npm run dev是启动Vite开发服务器实时编译资源,但生产环境需要预先构建静态资源并生成Vite清单文件。你的Heroku部署流程里没执行生产构建步骤,导致系统找不到public/script.js,触发500错误。

修复步骤

  • 确认package.json的构建脚本
    打开项目根目录的package.json,确保包含生产构建命令:
    "scripts": {
      "dev": "vite",
      "build": "vite build",
      "preview": "vite preview"
    }
    
  • 配置Heroku的Buildpack顺序
    因为Laravel同时依赖PHP和Node.js,得让Heroku先处理Node.js的构建:
    打开Heroku CLI执行以下命令:
    heroku buildpacks:add heroku/nodejs --index 1
    heroku buildpacks:add heroku/php --index 2
    
    这样Heroku会先安装Node依赖、执行npm run build生成静态资源,再配置PHP环境。
  • 检查环境变量
    在Heroku控制台的环境变量里,确保APP_ENV设置为production——Vite会根据这个环境变量切换到生产模式,生成正确的资源清单。
  • 修正Procfile
    确保你的Procfile是生产环境的配置,不要包含开发相关命令,标准Laravel Procfile内容应该是:
    web: vendor/bin/heroku-php-apache2 public/
    
  • 重新部署
    把所有修改提交后,重新推送到Heroku:
    git add .
    git commit -m "Fix Vite production build on Heroku"
    git push heroku main
    

额外排查项

  • 查看Heroku的构建日志,确认npm run build是否成功执行,有没有资源编译报错
  • 本地先执行npm run build测试,看是否生成了public/build/manifest.json和对应的静态资源文件,确保本地构建流程正常
  • 检查.gitignore文件,不要排除public/build目录(或者让Heroku在构建时自动生成该目录,不需要提交到Git)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:32:32