使用Forge部署Laravel 9+Vite时出现Vite清单未找到错误
Laravel 9 + Vite 部署到 Forge 缺失 build 文件夹的问题解决
问题根源
- 本地执行
npm run build生成的public/build文件夹,因为 Laravel 默认.gitignore里的排除规则,根本没被提交到 Git 仓库,推送到服务器后自然不存在。 - Laravel Forge 的默认部署脚本只处理后端相关操作(比如 Composer 依赖安装、缓存清理),没有包含前端依赖安装和构建的步骤,服务器不会自动生成 build 文件夹。
解决办法
推荐方案:让服务器自行构建前端资源
修改 Forge 的部署脚本,添加前端构建步骤:
- 登录 Forge,进入目标站点,打开「Deployment」标签页。
- 在部署脚本中加入以下两行(建议放在
composer install命令之后):
完整的部署脚本示例:npm install npm run buildcd /home/forge/default git pull origin main composer install --no-interaction --prefer-dist --optimize-autoloader # 新增前端构建步骤 npm install npm run build php artisan migrate --force php artisan optimize:clear php artisan optimize - 保存脚本后重新触发部署,服务器会自动安装前端依赖并生成 build 文件夹。
临时应急方案:提交本地 build 文件夹到 Git(不推荐)
如果不想修改部署脚本,可临时将本地 build 文件夹提交到仓库:
- 打开项目根目录的
.gitignore,注释掉/public/build这一行:# /public/build /public/hot /public/storage - 提交修改和 build 文件夹:
git add .gitignore public/build git commit -m "提交build文件夹到仓库" git push origin main - 重新部署服务器即可,但这种方式不推荐——不同环境(本地/服务器)的 Node 版本、依赖可能存在差异,容易导致资源构建不一致。
额外注意
- 确保服务器已安装 Node.js 和 npm:Forge 可在服务器的「Software」选项卡直接安装对应版本的 Node.js。
npm run build在生产环境会自动生成优化后的资源和manifest.json,无需额外配置环境变量。
内容的提问来源于stack exchange,提问作者oliverbj
相关产品推荐
相关产品推荐

