Я тоже новичок, но я постараюсь поделиться некоторыми проблемами, с которыми я столкнулся.
Если это ошибка порта, как вы и подозревали, правильно ли вы установили порт?
(ns demo.web
(:use ring.adapter.jetty))
(defn app [req]
{:status 200
:headers {"Content-Type" "text/plain"}
:body "Hello, world"})
(defn -main []
(let [port (Integer/parseInt (System/getenv "PORT"))]
(run-jetty app {:port port})))
Я перечислю некоторые проблемы, с которыми я столкнулся, возможно, это может помочь вам.
Procfile
Procfile должен выглядеть следующим образом:
web: lein run -m http.handler
, а не
'web: lein run -m http.handler'
Если Procfile обнаружен правильно, вы должны увидеть это:
Выход Heroku
-----> Discovering process types
Procfile declares types -> web ;; <- This line should appear
-----> Compiled slug size is 14.2MB
-----> Launching... done, v15
"lein repl" конфликтует с "web dyno"
Я также заметил проблему (ошибку?), Когда я запускал lein repl
перед тем, как запустить веб-dyno.Вы должны сначала попытаться отключить «repl»:
heroku ps:stop run.1
, а затем запустить веб-dyno:
heroku ps:scale web=1.
Должно существовать хотя бы 1 веб-dyno
Если вы случайно выключили веб-динамо:
heroku ps:scale web=0
Heroku не запустит веб-динамо автоматически при следующем нажатии на Heroku.Поэтому убедитесь, что у вас работает веб-динамо перед тем, как вы отправитесь на героку.Вы также можете запустить веб-динамо после совершения.
Справочное руководство
Для меня я смог успешно следовать этому красиво написанному руководству - http://thecomputersarewinning.com/post/clojure-heroku-noir-mongo. Если вы используете Noir 1.2.2, вам необходимо удалить:
(:require [myapp.views.noir.content.getting-started] :as content)
из "welcome.clj".