我想使用開發環境在我的Rails應用程序中測試500個錯誤頁面。如何在rails開發環境中測試500.html?
我已經在config/environments/development.rb
嘗試這樣:
config.action_controller.consider_all_requests_local = false
但是,這似乎並沒有產生任何影響。
我想使用開發環境在我的Rails應用程序中測試500個錯誤頁面。如何在rails開發環境中測試500.html?
我已經在config/environments/development.rb
嘗試這樣:
config.action_controller.consider_all_requests_local = false
但是,這似乎並沒有產生任何影響。
您可以:
local_request?
在application_controller.rb
喜歡的東西:def local_request? false end
第二個將停止處理來自本地主機和127.0.0.1的請求,因爲本地請求與consider_all_requests_local = false
結合應該向您顯示您的500.html頁面。
我發現要做到這一點,到目前爲止的唯一方法是在development.rb
config.consider_all_requests_local = false
然後設置訪問網址中使用我的本地IP地址:http://192.168.1.135:3000/blah
其他設置則提到唐似乎沒有任何效果。
您應該將以下行添加到application_controller,
unless ActionController::Base.consider_all_requests_local
rescue_from Exception, :with => :render_500
if ActiveRecord::RecordNotFound
rescue_from Exception, :with => :render_404
end
rescue_from ActionController::RoutingError, :with => :render_404
rescue_from ActionController::UnknownController, :with => :render_404
rescue_from ActionController::UnknownAction, :with => :render_404
end
然後嘗試用下面的設置運行。
config.action_controller.consider_all_requests_local = false
在配置/環境/ development.rb:
它將工作。請不要忘記在application_controller.rb中編寫函數來爲每個錯誤消息渲染布局。
只是做了http://localhost:3000/404或/ 500,以訪問這些頁面,看看他們是什麼樣子。
對於那些只想測試這些頁面設計的人來說,這是最短和最好的答案 – 2016-01-30 17:46:58
我同意你的意見。 – 2016-01-31 22:48:59
除了設置: config.consider_all_requests_local = false
我還需要設置: config.action_dispatch.show_exceptions = true
,如果你只是想迫使一個500錯誤,看看是什麼樣子,你可以只添加這一個觀點:
HAML例如:
= render :partial => "broken", :status => 500
添加一些解釋和回答這個答案如何幫助OP在解決當前問題 – 2017-01-18 01:07:38
會改變你的環境中生產的幫助嗎? – Nuby 2011-03-10 18:00:40
我個人認爲最好切換到生產環境來測試錯誤頁面。如果您在開發過程中始終禁用Rails的內置錯誤頁面,您可能會更難以看到有價值的調試信息。 – 2013-11-20 02:43:27