Elixir凤凰网应用程序在推送到heroku后破了

时间:2017-08-01 18:12:45

标签: heroku npm elixir phoenix-framework mix

在尝试将我的elixir phoenix web应用程序推送到heroku时,我遇到了很多问题需要很长时间才能解决,但是在我最终做完之后......我的应用程序将不再启动了!

我仍然是elixir和凤凰,甚至是heroku的新手,所以这对我来说真的很神秘。

运行mix phoenix.server时,这是我的输出:

** (UndefinedFunctionError) function Phoenix.Template.hash/2 is undefined or private. Did you mean one of:

  * hash/1

(phoenix) Phoenix.Template.hash("web/templates/error", "*")
web/views/error_view.ex:1: Dashboard.ErrorView.__phoenix_recompile__?/0
(elixir) lib/stream.ex:429: anonymous fn/4 in Stream.filter/2
(elixir) lib/enum.ex:3161: Enumerable.List.reduce/3
(elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
(elixir) lib/enum.ex:1823: Enum.reverse/1
(elixir) lib/enum.ex:2581: Enum.to_list/1
(phoenix) lib/mix/tasks/compile.phoenix.ex:13: Mix.Tasks.Compile.Phoenix.run/1
(mix) lib/mix/task.ex:301: Mix.Task.run_task/3
(elixir) lib/enum.ex:1255: Enum."-map/2-lists^map/1-0-"/2
(mix) lib/mix/tasks/compile.all.ex:19: anonymous fn/1 in Mix.Tasks.Compile.All.run/1
(mix) lib/mix/tasks/compile.all.ex:37: Mix.Tasks.Compile.All.with_logger_app/1
(mix) lib/mix/task.ex:301: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.ex:85: Mix.Tasks.Compile.run/1
(mix) lib/mix/task.ex:301: Mix.Task.run_task/3
(mix) lib/mix/tasks/app.start.ex:50: Mix.Tasks.App.Start.run/1
(mix) lib/mix/task.ex:301: Mix.Task.run_task/3
(mix) lib/mix/tasks/run.ex:86: Mix.Tasks.Run.run/5
(mix) lib/mix/tasks/run.ex:54: Mix.Tasks.Run.run/1

现在,我真的不明白这个问题来自哪里,对我来说似乎很困惑,我希望得到一些帮助。

我甚至不知道要分享哪些文件,因此您可以获得更多信息,但我愿意在我的项目中发布任何代码。

2 个答案:

答案 0 :(得分:1)

我在本地遇到了同样的问题,如果您在多个分支(有多个 phoenix 版本)上工作,请确保重建依赖项,这可能就是问题所在。

答案 1 :(得分:0)

我有完全相同的问题。在我的情况下,这是由于糟糕的elixir和erlang版本。我通过安装erlang 18.2和elixir 1.2.3

解决了这个问题

我建议使用erlang和elixir的版本管理器(我使用了kerl和envex)