Elixir 凤凰城可以';t start-缺少AppName.Endpoint.start\u链接

Elixir 凤凰城可以';t start-缺少AppName.Endpoint.start\u链接,elixir,phoenix-framework,Elixir,Phoenix Framework,Pheonix变化如此频繁,以至于我不确定我所做的是否正确 我正在尝试学习一些教程,它们都在编译完成后立即使用“mix phoenix.start”命令,这应该会启动服务器。(Github的问题页面上有一些讨论说,他们将用mix phoenix.server命令替换它,您必须手动执行某些操作,而不是真正遵循它。无论如何,这是在开发版本v0.8.0-dev中。我使用的是最新的稳定版本0.7.2) 尝试发出“mix phoenix.start”命令以启动服务器时出错 (应用程序名:PhoenixCr

Pheonix变化如此频繁,以至于我不确定我所做的是否正确

我正在尝试学习一些教程,它们都在编译完成后立即使用“mix phoenix.start”命令,这应该会启动服务器。(Github的问题页面上有一些讨论说,他们将用mix phoenix.server命令替换它,您必须手动执行某些操作,而不是真正遵循它。无论如何,这是在开发版本v0.8.0-dev中。我使用的是最新的稳定版本0.7.2)

尝试发出“mix phoenix.start”命令以启动服务器时出错
(应用程序名:PhoenixCrud):

文档中有更新的phoenix.server命令,但我也尝试了这个命令,这个混合命令说找不到任务

无论如何,看起来app_name/lib/app_name/endpoint.ex缺少start_链接函数。我应该提供吗?我现在不知道该放些什么,因为我只是在尝试Phoenix web框架,对它一无所知(因此有教程)


那么,我应该提供start_link函数吗?如果是的话,一些人可以给我一些,让我暂时加入进来,尝试学习一些教程。否则它是一个bug吗?

它是一个凤凰版本的东西。端点仅在master中可用,但您似乎没有使用master。您应该将
{:phoenix,github:“phoenixframework/phoenix”}
添加到您的
mix.exs
中,或者从0.7.2分支生成一个phoenix项目。

我的git知识不是很好,但下面是:

要使用0.7.2分支,您需要专门签出v0.7.2标记。 我就是这样做的:

git clone https://github.com/phoenixframework/phoenix.git
cd phoenix
git checkout tags/v0.7.2
mix do deps.get, compile
mix phoenix.new app_name ../app_name
cd ../app_name
#change the mix deps to: (I think you can just use default hex deps as well)
{:phoenix, github: "phoenixframework/phoenix", tag: "v0.7.2"}
mix do deps.get, compile
mix phoenix.start
否则,通常git clone位于主分支上的Phoenix代码位于0.8.0-dev上,您需要将DEP设置为github主分支(如@JoseValim所述)

这意味着您现在需要使用mix phoenix.server命令


希望对其他人有所帮助。

您的服务器似乎已经启动。您只需要杀死它,然后使用命令killall beam.smp重新启动。我使用的是hex的0.7.2分支。现在我把它改成了github主分支,它成功了。但这让人困惑,因为我认为主分支位于v0.8.0-dev上,因为我必须使用
mix phoenix.server
来启动它。根据变更日志:,是v0.8.0-dev首先将其更改为使用mix phoenix.server vs mix phoenix.start这让我很生气。为什么我不能运行我已经拥有的版本?谁有好的解释?现在我无法运行我的1.1.4版本,我想我必须更新到1.2。但这次更新将促使我将phoenix_-ecto更新到>'3.0'。我还有很多其他的DEP需要凤凰城2版。问题是:比起重新加载的pc,我可以让它正常工作和运行,现在我不得不花很多时间修复所有的DEP来运行我的项目。为什么?@AvaelKross我真的不知道你在说什么。只要你检查你的
mix.lock
到你的源代码管理中(你应该这样做),每次你运行
mix-deps.get
你就会得到与上次使用它时完全相同的版本,无论是上周还是2014年。@AvaelKross并进一步澄清,这个问题只发生在过去,因为我们没有合适的
phoenix.new
。因此,人们会使用0.8.0-dev生成一个新的应用程序,但唯一可用的版本是0.7.2。这绝对不应该发生在今天。@JoséValim谢谢你的回答。老实说,我不知道为什么pc重新启动后,
mix phoenix.server
无法启动(使用此
未定义的函数:MyApp.Endpoint.start\u link/0
错误)。上次我遇到这个错误时,我已经将phoenix从1.1.3更新为1.1.4,问题已经解决了。昨天我认为升级到1.2不是一个解决方案。我试图让所有的DEP都能很好地配合;没有成功。然后我恢复了所有更改并再次运行
mix deps.get
。凤凰城在那之后开始了。这只是非常奇怪的行为。
git clone https://github.com/phoenixframework/phoenix.git
cd phoenix
git checkout tags/v0.7.2
mix do deps.get, compile
mix phoenix.new app_name ../app_name
cd ../app_name
#change the mix deps to: (I think you can just use default hex deps as well)
{:phoenix, github: "phoenixframework/phoenix", tag: "v0.7.2"}
mix do deps.get, compile
mix phoenix.start
{:phoenix, github: "phoenixframework/phoenix"}