我正在尝试访问:
http://localhost:3000/images/Header.png
但我一直收到这个错误:
Routing Error
No route matches "/images/Header.png" with {:method=>:get}
这是我的路线:
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
答案 0 :(得分:17)
静态资产需要进入/ public文件夹,否则您将收到路由错误。对于http://localhost:3000/images/Header.png
处的静态图片,您希望将Header.png放在RAILS_ROOT/public/images
当给出任何URL时,Rails将在尝试匹配任何路由之前检查RAILS_ROOT / public目录中存在的文件。
例如,当Rails服务器收到http://localhost:3000/users/1
的请求时,它将尝试发送RAILS_ROOT/public/users/1
的内容。如果不存在文件,则路由匹配例程将启动。
答案 1 :(得分:1)
routes.rb
的最后两行是与所有以前不匹配的网址匹配的全能路线。
注释掉这两行并且它将起作用,这是你在所有应用程序中使用RESTful路由时想要做的事情。
有关Rails路由的所有信息,请参阅this excellent guide。