我是一个从轨道迁移的灵丹妙药菜鸟。我无法启动服务器。我开始了一个--no-html --no-brunch项目。我什么也没做,只是启动了项目并在页面上给出了以下错误
Phoenix.Router.NoRouteError
GET /
未找到GET /
路线 (PhoenixReactChat.Router
)
它在页面上显示我的标准路由器.ex
defmodule PhoenixReactChat.Router do .
use PhoenixReactChat.Web, :router
pipeline :api do
plug :accepts, ["json"]
end
scope "/api", PhoenixReactChat do
pipe_through :api
end
end
使用我的 Rails 思想,我会在这个文件中添加一些引用根的东西,例如根"home#index",对吗?我将如何做到这一点?此外,文档不包含任何用于启动服务器的代码行。
编辑:也就是说,我也在遵循我的项目的旧教程。(https://medium.com/@benhansen/lets-build-a-slack-clone-with-elixir-phoenix-and-react-part-1-project-setup-3252ae780a1)一些进一步的挖掘告诉我,由于设置的原因,这个错误是可以预料的。(https://developer.epages.com/blog/2017/02/09/programming-beyond-the-comfort-zone-the-phoenix-framework.html)
看起来您需要向要为路径/
处理的控制器添加路由。
有几种方法可以处理它。 您应该查看凤凰路由指南。 处理此问题的方法之一是在api
范围内添加类似以下内容的内容。
scope "/api", PhoenixReactChat do
pipe_through :api
get "/", PageController, :index
end
您还可以将resources
宏添加到 以将控制器中的所有 RESTful 函数添加到路由中。
当我使用它时,我没有意识到没有html或分支选项摆脱了页面控制器。 我想对那些曾经对我投反对票的人说,我们都是从某个地方开始的,毫无疑问,有人会遇到同样的问题。 现在,当他们谷歌搜索时,他们会知道不要惊慌失措,自凤凰城 1.2 以来情况发生了变化(我不确定,因为 1.3 是我的第一步)。所以 tldr 如果你没有选择html,你将无法在浏览器中检查你的服务器。您仍然可以运行它,但不会获得欢迎页面。您仍然可以使用 iex -S mix phx.server 从服务器运行 iex,并对代码运行测试即可。