[英]Way to display Rails error page instead of vague Heroku error pages
在本地主機上開發Rails應用程序,每當出現錯誤時,您都可以在出現的Rails頁面上詳細查看該錯誤。 但是,在Heroku上,出現錯誤時唯一出現的是“很抱歉,但出了點問題”。 沒有任何信息。 我看過日志,但這似乎無濟於事。 有沒有辦法用詳細的Rails錯誤頁面替換該通用Heroku錯誤頁面?
這不是特定於heroku的問題,而是生產環境中的問題。 在任何生產設置中,可以通過在config/environments/production.rb
更改此行來顯示完整的錯誤。
config.consider_all_requests_local = false
至
config.consider_all_requests_local = true
請注意,一種更好的替代方法是繼續顯示生產樣式錯誤,並使用以下內容尾部記錄文件,以使用戶看不到該錯誤:
heroku logs --app <yourappname> --tail
這將運行日志文件流,因此您不會錯過任何事情,而不會錯過最后40行。
如果您沒有看到足夠的信息,請在config/environments/production
添加或更改log_level以進行調試
config.log_level = :info
或者,您可以使用環境變量來重置日志級別,因此您可以刪除它並重新啟動,而不用重新部署:
heroku config:add LOG_LEVEL=DEBUG --app <yourappname>
這可以帶你去。
的routes.rb
match "/404", :to => "exceptions#some_error"
match "/500", :to => "exceptions#some_error"
#add some more?
所以呢
class ExceptionsController < ApplicationController
def some_error
@exception = env["action_dispatch.exception"]
@status_code = ActionDispatch::ExceptionWrapper.new(env, @exception).status_code
end
end
最后一個視圖頁面,要顯示某種異常,您將要修復。
在您的Rails應用中的config/environments/production.rb
,嘗試更改
config.consider_all_requests_local = false
至
config.consider_all_requests_local = true
注意:當您想查看正常的Rails錯誤消息時,您可能需要設置一個新環境並將其部署到Heroku。 也許是staging
或testing
類的事情,因為您不希望用戶在實時站點上看到此類錯誤。
我感到你很痛苦。 嘗試運行heroku run rails console
以獲得更清晰的錯誤。 希望能有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.