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'
-
-