目前在我的rails应用中,如果有人输入错误的网址,则会将<{>>找不到页面设为闪存alert
,如下所示。
的routes.rb
match '*path', to: redirect{ |p, req| req.flash[:alert] = "Page not found"; '/' }, via: :all
相反,我希望它直接转到 public / 404.html
中的404
页面
我怎样才能做到这一点?
答案 0 :(得分:1)
最好不要在公共文件夹中使用404。
您可以在路线上添加:
match "/404" => "errors#error404", via: [ :get, :post, :patch, :delete ]
比在应用程序控制器中甚至更好地创建ErrorsController,添加render status: :not_found
还可以根据控制器添加自己的视图。
答案 1 :(得分:0)
如果您的消息/内容不是动态的,我建议您自定义当前的404.html
页面(无需向您的路线添加match
,导轨将默认重定向至public/404.html
对于你的路线中找不到的任何网址。)
如果您确实需要自定义404页面,请使用@TiSer answer。