5
在創建新的Rails應用程序時,默認情況下,它將在/
處提供「Welcome to Rails」頁面,除非您在routes.rb
中指定了替代root
。我可以在不創建新的Rails應用程序的情況下刪除默認的根嗎?
我的應用程序當前只服務於一個子路徑(例如/api/v1/
),因此訪問/
應該導致404錯誤。我該怎麼做到這一點?
在創建新的Rails應用程序時,默認情況下,它將在/
處提供「Welcome to Rails」頁面,除非您在routes.rb
中指定了替代root
。我可以在不創建新的Rails應用程序的情況下刪除默認的根嗎?
我的應用程序當前只服務於一個子路徑(例如/api/v1/
),因此訪問/
應該導致404錯誤。我該怎麼做到這一點?
如果你想渲染一個404
響應,我可以考慮兩種方法。
首先,你可以路線機架,並返回一個簡單的404
響應:
# config/routes.rb
root to: proc { [404, {}, ["Not found."]] }
其次,你可以採取明顯的路線,點根返回404
控制器動作:
# config/routes.rb
root to: "application#not_found"
# app/controllers/application_controller.rb
def not_found
render text: "Not found.", status: 404
end
第三種選擇當然是路由到一個不存在的動作,但我不認爲這是一個好主意,因爲意圖是模糊的,並且很容易被誤認爲是錯誤的。
例如,'root to:'home#no_root'',它會渲染一個404 –
這似乎工作;有沒有更好的方法來做到這一點? – DanielGibbs
應用程序通常有一個根:) –