第一次运行凤凰服务器时出错.该消息显示 Phoenix.Router.NoRouteError at GET



我是一个从轨道迁移的灵丹妙药菜鸟。我无法启动服务器。我开始了一个--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,并对代码运行测试即可。

最新更新