Desafío Latam
Uncategorized

Creando una página 404 con Rails

4041

4041

Hace unos días atrás, empecé a investigar sobre que medidas podía tomar para mejorar el SEO de mi sitio web, polisofia.com, y una de esas medidas era crear una página 404 personalizada.

Antes de ilustrar cómo y qué hice, les explicaré que es un sitio 404. Como dice en Wikipedia, “HTTP Error 404 o not found es un código de estado HTTP que indica que el host ha sido capaz de comunicarse con el servidor, pero no existe el recurso que ha sido pedido”. Osea, el usuario se equivocó al escribir la url, el link ya no existe o el desarrollador se equivocó en algo y por eso el sitio al que se intenta acceder no existe.

En mi búsqueda, encontré dos maneras que es haciendo, más bien modificando, el archivo 404.html que está en public/404.html o con rails. Decidí hacerlo con rails ya que tiene dos grandes beneficios.

Puedo utilizar el layout
Puedo utilizar internacionalización, o sea, puedo tener el sitio 404 en distintos idiomas.

Ahora vamos a la acción.

Primero, hay que borrar el archivo default que está en public, el archivo 404.html para evitar errores.

Segundo, hay que modificar el archivo application.rb que está en config y en las rutas agregamos:

module NameOfMyApp
  class Application < Rails::Application
    # …

    require Rails.root.join("lib/custom_public_exceptions")
    config.exceptions_app = CustomPublicExceptions.new(Rails.public_path)
  end
end
Rails.application.routes.draw do
  match "/404" => "errors#error404", via: [ :get, :post, :patch, :delete ]

  # …
end

Ahora, tenemos que crear los siguientes archivos de la forma habitual:
lib/custom_public_exceptions.rb
app/controllers/errors_controller.rb
app/views/errors/error404.erb

Y listo! Sólo faltaría revisar en desarrollo si es que funciona o no. Ingresa a http://localhost:3000/404 y en caso de que no aparezca, revisa que hayas borrado el archivo 404.html que está en la carpeta publica.

Les dejo el resultado de lo que hice: http://polisofia.com/404

Artículos relacionados

Configurando Git y GitHub en OSX y Linux

Alex Pacheco
9 años ago

Aceptar atributos anidados con ruby on rails

Gonzalo Sánchez
10 años ago

Nicolás Melgarejo | TICLASS

Diego Arias
9 años ago
Salir de la versión móvil