Laravel Mix应用部署至Heroku后未更新问题求助
Laravel Mix 部署到Heroku后线上显示旧版本的排查方案
我之前维护Laravel Mix项目部署到Heroku时,也碰到过一模一样的问题——本地代码和Heroku版本完全对齐,但线上就是不更新。给你几个亲测有效的排查和解决步骤:
1. 先确认Laravel Mix的构建产物是否被正确提交/构建
- 首先检查你的
.gitignore文件,是不是把public/js/、public/css/或者public/build/这些编译后的静态资源给排除了?如果是的话,本地执行npm run prod(生产环境一定要用prod构建,不要用dev)后,必须把这些编译产物通过git add public/js public/css(或者对应路径)添加到Git,再重新commit推送。 - 如果不想手动编译提交,也可以让Heroku自动帮你构建:在项目根目录的
package.json里添加"heroku-postbuild": "npm run prod"脚本,这样Heroku在安装依赖后会自动执行静态资源构建。记得推送这个修改后的package.json到Heroku。
2. 清除Heroku的构建缓存
Heroku会缓存node_modules和部分构建产物,有时候即使代码更新了,缓存的旧资源还在生效。执行下面的命令清除缓存:
heroku builds:cache:purge
清除后重新推送代码,查看Heroku的构建日志(heroku logs --tail),确认这次是重新安装依赖并执行了构建步骤。
3. 清理Laravel应用缓存
登录Heroku的远程控制台,手动清除Laravel的各类缓存:
heroku run bash # 进入控制台后依次执行 php artisan config:clear php artisan route:clear php artisan view:clear
执行完后退出控制台,重启Heroku的dyno:
heroku restart
4. 检查部署日志和运行状态
- 用
heroku logs --tail实时查看日志,看看有没有构建失败的报错(比如npm依赖安装失败、Mix编译报错),这些错误可能导致Heroku fallback到之前的成功版本运行。 - 确认你推送的分支确实被部署了:执行
heroku git:remote -a your-app-name(替换成你的应用名),然后heroku releases查看最新的release是不是对应你推送的commit hash。
内容的提问来源于stack exchange,提问作者Alpha9
相关产品推荐
相关产品推荐

