如何拯救在rails中找不到404页面?
Posted
技术标签:
【中文标题】如何拯救在rails中找不到404页面?【英文标题】:How to rescue page not found 404 in rails? 【发布时间】:2021-11-20 01:03:21 【问题描述】:如果用户在 Rails 中添加了错误的 url,如何挽救页面未找到。如果 url 无效,我希望在公用文件夹中显示 404 页面。怎么做?我正在浏览它,但找不到解决方案。我尝试了很多方法来解决这个问题,但它们似乎并没有奏效。 我卡在这里,请帮忙。
【问题讨论】:
【参考方案1】:Rails 4
的解决方案在routes.rb:
get '*unmatched_route', to: 'application#not_found'
在application_controller.rb上:
def not_found
# Your exception handling code here
end
【讨论】:
感谢您的回答和此评论 (***.com/questions/19368799/…),我能够“捕获所有未找到的错误”。 ^_^【参考方案2】:我找到了解决方案,检查一下 => http://techoctave.com/c7/posts/36-rails-3-0-rescue-from-routing-error-solution(很好的解决方案)
routes.rb:
# at the end of you routes.rb
match '*a', :to => 'errors#routing', via: :get
errors_controller.rb:
class ErrorsController < ApplicationController
def routing
render_404
end
end
应用程序.rb:
rescue_from ActionController::RoutingError, :with => :render_404
private
def render_404(exception = nil)
if exception
logger.info "Rendering 404: #exception.message"
end
render :file => "#Rails.root/public/404.html", :status => 404, :layout => false
end
【讨论】:
如果这个句柄可以通用来处理其他 mime 类型,那就太好了。像 non-exist.js 或 does-not-exists.xml @Ismael 你找到关于 js 或 xml 格式文件的东西了吗? 我不再参与这个问题。不过我觉得跟respond_to函数有关,很容易理解,看看吧。以上是关于如何拯救在rails中找不到404页面?的主要内容,如果未能解决你的问题,请参考以下文章
错误 404。在 nopCommerce 4.00 中找不到请求的页面 (/en/index.php)
在 IIS 7.5 中托管的 Web Api 中找不到 HTTP 404 页面