问题
Update: Turns out that this problem was because half my mongrel did not restart. Thanks all for help!
Hi folks, i have an urgent problem. Essentially, my routing works on my localhost. But when i deployed this to production, the routes does not seem to work correctly.
For example, given a new route "/invites" - sometimes i will get a 404, and sometimes it will work correctly.
I suspect there is some caching going on somewhere, but i am not sure.
Logs: when a page is not found (when the routes are supposed to be accurate)
Processing UsersController#network (for 67.180.78.126 at 2010-06-01 09:59:31) [GET] Parameters: {"id"=>"new"}
ActionController::RoutingError (No route matches "/comm/role_playing_games" with {}):
app/controllers/application_controller.rb:383:inprev_page_label'
log_timed_info'
app/controllers/application_controller.rb:238:in
app/controllers/users_controller.rb:155:innetwork'
network'
app/controllers/users_controller.rb:151:in
app/controllers/application_controller.rb:44:inturn_on_query_caching'
turn_on_query_caching'
app/controllers/application_controller.rb:43:in
app/controllers/application_controller.rb:42:inturn_on_query_caching'
turn_on_query_caching'
app/controllers/application_controller.rb:41:in
app/controllers/application_controller.rb:40:inturn_on_query_caching'
turn_on_query_caching' haml (3.0.6) lib/sass/plugin/rack.rb:41:in `call'
app/controllers/application_controller.rb:39:inRendering /mnt/app/releases/20100524233313/public/404.html (404 Not Found)
回答1:
From the little you have posted, this definitely isn't a caching or routing problem.
It sounds like you are trying to generate a link to the previous page the person was on inside ApplicationController
and you have a bug with it. You will have to post the relevant code from application_controller.rb
.
回答2:
Did you make sure you restarted your server (like apache, ngix or passenger)? Also, sometimes a browser can cache urls, just close your browser and reopen it, see if that fixes it.
Also, once in a blue moon, I'll forget to push the code to GIT and therefore production server doesn't get the latest code. Just check that your server actually has the code there.
来源:https://stackoverflow.com/questions/2951894/rails-routing-broken-in-production-caching-of-routes-rb-suspected