【问题标题】:How can I route to a page any time no route is available?如果没有可用的路由,我如何路由到页面?
【发布时间】:2013-08-19 19:05:57
【问题描述】:

我想制作一个带有后退按钮的简单页面,以应对用户输入没有路由的页面的 url 的奇怪情况。

例如,foo 的路由是:

resources :foos, :except => [:index]

用户输入:

mysite.com/foos

我想显示一个显示“此页面不存在”的页面和一个返回按钮。

我应该将 html.erb 文件放在哪里以及如何在 routes.rb 中说明这一点?

谢谢

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    在你的 routes.rb 结尾写:

    match '*path', :controller => 'some_controller', :action => 'some_action'
    

    match '*path' => 'some_controller#some_action'
    

    来源:

    rails handle 404 with url redirect

    【讨论】:

      【解决方案2】:

      在生产模式下,您的 Rails 应用程序的 /public 文件夹中的 404.html 将被渲染为路由错误,而不是显示错误消息。

      【讨论】:

      • 不,你不能。但他只想要一个显示消息和返回按钮的 404 页面。
      【解决方案3】:

      据我所知,您有两种方法可以做到这一点:

      1. 如果您想捕获像 (404,500..etc.,) 这样的错误,请在 ActionController 中使用 rescue_from。否则,如果您只想编辑默认错误页面,请在 {Rails.root}/public
      2. 中编辑 500.html 和 404.html 文件

      示例: How to properly render custom 404 and 500 pages?

      2.Custom Error Page - Ruby on Rails

      【讨论】:

        【解决方案4】:

        当在服务器中找不到客户端的请求时,会进行 404 重定向。要自定义 404 页面,只需在 public/404.html 中更改它

        【讨论】:

          猜你喜欢
          • 2021-11-22
          • 1970-01-01
          • 1970-01-01
          • 2019-03-21
          • 1970-01-01
          • 2021-12-04
          • 1970-01-01
          • 2016-10-28
          • 1970-01-01
          相关资源
          最近更新 更多