2010-02-06 20 views
7

Estoy intentando tener acceso a:No puedo servir las imágenes estáticas en Ruby on Rails

http://localhost:3000/images/Header.png 

pero me siguen dando este error:

Routing Error 

No route matches "/images/Header.png" with {:method=>:get} 

Y aquí están mis rutas:

ActionController::Routing::Routes.draw do |map| 
    map.resources :worker_antpile_statuses 

    map.resources :worker_antpiles 

    map.resources :antcolonies 

    map.resources :antpiles 

    map.resources :clients 
    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 
+3

¿por qué es esta comunidad wiki? – Nate

Respuesta

1

Las últimas dos líneas de su routes.rb son rutas generales que coincidirán con las URL que no se hayan igualado anteriormente. Comenta estas dos líneas y funcionará, que es lo que quieres hacer cuando usas el enrutamiento RESTful en todas tus aplicaciones.

Consulte this excellent guide para conocer todo lo que necesita saber sobre las rutas de Rails.

+0

Eso no es suficiente para servir archivos estáticos en Rails 3. :( – mcandre

15

Los activos estáticos deben ir en la carpeta/public o de lo contrario obtendrá el error de enrutamiento. Para una imagen estática en http://localhost:3000/images/Header.png que desea colocar en header.png RAILS_ROOT/public/images

Cuando se administra cualquier URL, Rails comprobar si hay un archivo existente en el camino desde RAILS_ROOT directorio/pública antes de intentar igualar cualquier ruta.

Por ejemplo, cuando un servidor de Rails recibe una solicitud de http://localhost:3000/users/1, intentará enviar el contenido de RAILS_ROOT/public/users/1. Si no existe ningún archivo, la rutina de coincidencia de ruta entra en acción.

+0

¡Eso funciona! GRACIAS POR LA AYUDA. ¿Cuál es el propósito de la carpeta de imágenes debajo del público? – sam

+0

Bueno, me refiero a cualquier lugar dentro/público./public/images está bien. ¿Tiene una imagen en/public/images, pero no se carga cuando OBTIENE su dirección exacta, distingue entre mayúsculas y minúsculas? –

+0

es la dirección exacta y parece que no puede acceder a la carpeta de imágenes que se encuentra en la carpeta pública. – sam