簡體   English   中英

如何正確處理將不良網址重定向到Rails中的ruby中的自定義404頁面?

[英]How do I correctly handle redirects for bad url's to custom 404 page in ruby on rails?

用戶可以這樣訪問其他用戶的個人資料:

site.com/username

我的用戶控制器中的find方法將通過用戶名查找用戶。.如果該用戶不存在,我希望將他們重定向到我將創建的自定義404錯誤頁面。

我還希望將它們重定向為他們鍵入的任何其他不存在的URL。

我在Google上找到了一些解決方案,但想知道是否有人可以在rails 3.2中給我一個最新的示例,因為我發現的這些教程是pre rails 3.1。

親切的問候

我在Rails 3.2上嘗試了此解決方案,並且它可以正常工作。

https://makandracards.com/makandra/12807-custom-error-pages-in-rails-3-2

  1. 在你的config/application.rb

     config.exceptions_app = self.routes 
  2. 在你的config/routes.rb

     get '/404', to: 'errors#not_found' get '/500', to: 'errors#server_error' 
  3. 創建app/controllers/errors_controller.rb

     class ErrorsController < ApplicationController def not_found render status: 404 end def server_error render status: 500 end end 
  4. 創建app/views/errors/not_found.html.hamlapp/views/errors/server_error.html.haml (更換hamlerb ,如果你不使用HAML)

  5. 重新啟動服務器

在生產中, ActiveRecord::RecordNotFound異常將自動呈現您的public/404.html文件。

record is not found或輸入invalid URL時,您始終可以呈現模板404以及狀態代碼

render :template => 'public/404.html', :status => 404

這是“ Ruby on Rails中的自定義動態錯誤頁面”的博客,它將幫助您

Ruby on Rails中的自定義動態錯誤頁面

它不是在/public/404.html中嗎?

UPDATE

實際上,我非常確定的是,在生產模式下在nginx上運行我的頁面時出現的是完全相同的404頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM