Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redirect Phoenix:未找到路由的默认路径_Redirect_Elixir_Phoenix Framework_Router - Fatal编程技术网

Redirect Phoenix:未找到路由的默认路径

Redirect Phoenix:未找到路由的默认路径,redirect,elixir,phoenix-framework,router,Redirect,Elixir,Phoenix Framework,Router,让我们来看一个基本路由器: ... scope "/", Backend do pipe_through [:browser, :with_session] get "/", PageController, :index end ... 调用提升默认值“Phoenix.Router.NoroutError”。 处理这种情况的最佳方法是什么? 离开默认的phoenix错误页面? 重定向到索引页? 重定向到未找到的自定义页面 如何将任何未知路由重定向到单个路径 处理这种情况的最佳方法是什

让我们来看一个基本路由器:

...
scope "/", Backend do
  pipe_through [:browser, :with_session]

  get "/", PageController, :index
end
...
调用提升默认值“Phoenix.Router.NoroutError”。 处理这种情况的最佳方法是什么? 离开默认的phoenix错误页面? 重定向到索引页? 重定向到未找到的自定义页面

如何将任何未知路由重定向到单个路径

处理这种情况的最佳方法是什么

没有最好的办法。我个人更喜欢在同一个URL上显示404消息,这样,如果用户输入错误,他们就可以编辑和修复URL,而不必再次重新键入准确的URL,如果站点将无效URL重定向到某个地方,他们就必须这样做

如果仍要重定向,可以在作用域块的末尾创建一个“全部捕获”路由和一个简单控制器:

# Controller
defmodule MyApp.FourOhFour do
  use MyApp.Web, :controller

  def index(conn, _params) do
    redirect(conn, to: "/404")
  end
end

# Route
scope "/", MyApp do
  get "/*path", FourOhFour, :index
end
上述操作将所有未知GET请求重定向到
/404
。确保此路线在您所有的
get
呼叫后到达

处理这种情况的最佳方法是什么

没有最好的办法。我个人更喜欢在同一个URL上显示404消息,这样,如果用户输入错误,他们就可以编辑和修复URL,而不必再次重新键入准确的URL,如果站点将无效URL重定向到某个地方,他们就必须这样做

如果仍要重定向,可以在作用域块的末尾创建一个“全部捕获”路由和一个简单控制器:

# Controller
defmodule MyApp.FourOhFour do
  use MyApp.Web, :controller

  def index(conn, _params) do
    redirect(conn, to: "/404")
  end
end

# Route
scope "/", MyApp do
  get "/*path", FourOhFour, :index
end
上述操作将所有未知GET请求重定向到
/404
。确保此路线在您所有的
get
呼叫后到达