2012-03-21 11 views
14

Estoy utilizando raíles 3. En los raíles de producción maneja bien las excepciones y carga mis archivos estáticos 404.html, 500.html etc. de mi directorio público. Sin embargo, carga estos archivos en mi archivo layouts/application.html.erb. Estoy buscando una forma de indicarles a los rieles que carguen estos archivos SIN usar el diseño de mi aplicación, por ej. solo sirve el archivo html estático y nada más. Cuál es la mejor manera de lograr esto?cómo renderizar los rieles estáticos 404, 500 páginas de error sin diseño del sitio?

gracias!

+1

como sé, los rieles cargan por defecto estas páginas de error sin cargar layouts/application.html.erb, corríjanme si me equivoco –

+1

alojo en heroku y está cargando estos archivos dentro del diseño de mi aplicación. – istan

Respuesta

50

render :file => 'public/404.html', :status => :not_found, :layout => false

+4

tiene que ser ': status =>: not_found' y NO': status => 'not_found'' Eso me estaba molestando, pero está funcionando ahora. ¡Gracias! – Josh

+0

pero, ¿dónde pongo esta línea de código? – thedanotto

+2

@thedanotto en algún lugar de su controlador. – MikDiet

1

Para una avanzaron enfoque de trabajo en el marco de Rails. Actualizar el archivo routes:

get "/404", to: "errors#error_404" 
get "/500", to: "errors#error_500" 

Añadir un ErrorsController con:

layout false 

def error_404 
    render status: 404 
end 

def error_500 
    render status: 500 
end 

Luego, dentro de la app/views/errors/ añadir su error_404.erb y error_500.erb archivos junto con una snazy image y una barra de búsqueda.

More info here.

Cuestiones relacionadas