From 722189b6ac2fbe96c555b2318e7cde2ea5557e3f Mon Sep 17 00:00:00 2001 From: Carl Chenet Date: Tue, 23 May 2017 12:26:49 +0200 Subject: [PATCH] add a dynamic 404 page --- .gitignore | 1 + app/controllers/home_controller.rb | 20 +++++++++++++++++--- config/application.rb | 2 ++ config/routes.rb | 2 ++ public/404.html | 9 --------- 5 files changed, 22 insertions(+), 12 deletions(-) delete mode 100644 public/404.html diff --git a/.gitignore b/.gitignore index c0b1883..4db7818 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ upstream-patches app/views/home/privacy.* app/views/home/about.* app/views/home/chat.* +app/views/home/404.* app/assets/stylesheets/local/* public/favicon.ico public/apple-touch-icon* diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 244266d..7a444d3 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -4,11 +4,24 @@ class HomeController < ApplicationController before_filter { @page = page } before_filter :require_logged_in_user, :only => [ :upvoted ] + def four_oh_four + begin + @title = "Resource Not Found" + render :action => "404", :status => 404 + rescue ActionView::MissingTemplate + render :text => "
" << + "
404
" << + "Resource not found" << + "
", :layout => "application" + end + end + + def about begin @title = I18n.t 'controllers.home_controller.abouttitle' render :action => "about" - rescue + rescue ActionView::MissingTemplate render :text => I18n.t('controllers.home_controller.abouttext'), :layout => "application" end end @@ -17,8 +30,9 @@ class HomeController < ApplicationController begin @title = I18n.t 'controllers.home_controller.chattitle' render :action => "chat" - rescue + rescue ActionView::MissingTemplate render :text => "
" << + "
Chat
" << "Keep it on-site" << "
", :layout => "application" end @@ -28,7 +42,7 @@ class HomeController < ApplicationController begin @title = I18n.t 'controllers.home_controller.privacytitle' render :action => "privacy" - rescue + rescue ActionView::MissingTemplate render :text => I18n.t('controllers.home_controller.licensetext'), :layout => "application" end end diff --git a/config/application.rb b/config/application.rb index 3c08f65..3401516 100644 --- a/config/application.rb +++ b/config/application.rb @@ -30,6 +30,8 @@ module Lobsters config.cache_store = :file_store, "#{config.root}/tmp/cache/" + config.exceptions_app = self.routes + config.after_initialize do require "#{Rails.root}/lib/monkey.rb" end diff --git a/config/routes.rb b/config/routes.rb index 4f8bda7..c0e2994 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -4,6 +4,8 @@ Lobsters::Application.routes.draw do :protocol => (Rails.application.config.force_ssl ? "https://" : "http://"), :as => "root" + get "/404" => "home#four_oh_four", :via => :all + get "/rss" => "home#index", :format => "rss" get "/hottest" => "home#index", :format => "json" diff --git a/public/404.html b/public/404.html deleted file mode 100644 index 86724f7..0000000 --- a/public/404.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - 404 - - -

gone fishin'

- -