Strapi自定义管理端本地正常部署Heroku不生效如何解决?
Strapi自定义管理后台Heroku部署不生效解决方案
核心原因
Strapi的自定义管理后台需要在生产构建阶段将admin/src下的修改重新编译打包为静态资源才会生效。Heroku默认构建流程如果没有触发admin的全量编译,会直接使用默认后台模板,忽略你修改的源文件;你之前提交.cache目录部分文件的操作反而会干扰构建时的缓存清理逻辑,进一步导致修改不生效。
修复步骤
- 修改项目根目录
package.json中的构建命令,强制构建时清理旧缓存、全量编译admin:
把scripts配置中的build字段修改为:
(如果你的Strapi版本较低不支持--clean参数,可以写成"build": "strapi build --clean""build": "strapi build && rm -rf .cache && strapi build") - 删除你之前添加的所有和
.cache目录相关的自定义.gitignore规则,恢复默认的忽略全部.cache目录的配置即可,不需要提交任何缓存目录下的文件。 - 确认你修改的文件路径正确,必须是项目根目录下的
./admin/src/containers/HomePage/Index.js,不要误改到node_modules或其他临时目录下的对应文件。 - 本地执行
npm run build(或yarn build)验证修改可以正常编译,本地构建后访问后台确认自定义内容生效。 - 提交所有修改到Git仓库后,先清空Heroku构建缓存再重新部署:
执行命令heroku builds:cache:purge -a 你的Heroku应用名称,之后推送代码触发新的构建流程。
额外排查项
如果操作完以上步骤仍未生效,可以做以下检查:
- 确认Heroku应用的环境变量中
NODE_ENV设置为production,Strapi生产模式才会加载构建好的自定义admin静态资源。 - 部署完成后强制刷新浏览器(Windows按Ctrl+Shift+R,Mac按Cmd+Shift+R),清除本地浏览器的旧静态资源缓存。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

