我的Luminus应用部署到Heroku后无法运行该如何解决?
修复方案
1. 配置文件提交规则修正
检查项目根目录的.gitignore文件,删除对env/prod/路径的忽略规则,仅保留env/dev/、env/test/的忽略配置。如果之前配置文件已经被忽略,执行git add -f env/prod/resources/config.edn强制提交生产环境配置文件。
2. 调整Leiningen构建配置
打开根目录的project.clj,找到:profiles下的:prod配置块,确保已将生产配置路径加入资源路径:
:profiles { :prod { :resource-paths ["env/prod/resources"] ;; 保留原有prod块的其他配置不变 } }
3. 修正配置文件语法
config.edn为纯配置文件,不能直接执行Clojure函数,使用Luminus默认集成的cprop库提供的环境变量读取宏,正确配置如下:
{:prod true :port #env PORT :database-url #env JDBC_DATABASE_URL }
4. 执行命令时指定生产环境profile
执行数据库迁移命令时需要明确指定prod profile,命令如下:heroku run lein with-profile prod run migrate
检查项目根目录的Procfile文件,确保启动命令也指定了prod profile,uberjar部署的参考配置:web: java -jar target/uberjar/guestbook.jar --profile prod
如果是直接用Leiningen启动,配置为:web: lein with-profile prod run
5. 验证前端构建逻辑
检查你新增的bin/build文件,确保逻辑包含npm install、npm run build步骤,且构建生成的前端静态资源已输出到resources/public目录下,避免前端资源404错误。
内容的提问来源于stack exchange,提问作者JohnBradens
相关产品推荐
相关产品推荐

