The simplicity of caches_page and kin is brilliant, and I use them  
liberally. But recently I've been encountering a subtle problem.

Since version 2.2, Apache has begun issuing intermittent GET requests  
to itself. They hit the root '/' url. Since they come from a local  
source, request.domain is some variation on 127.0.0.1, which mean  
that all your url_for-constructed links point to localhost. Which is  
fine, because Apache's 'internal dummy connection' doesn't look at  
the response. But if your home page cache had just expired, the new  
cached version that will be served up to all visitors has a bunch of  
bad links...

On our blog I have listed a snippet of Apache configuration[1] that  
sends these internal requests a harmless 403. I'm sure there are much  
better solutions. Furthermore, there's no question that Apache's  
behaviour is a bit obnoxious. But it is premised (like GWA, but to a  
much lesser degree) on the idea that GETs should be idempotent, and  
Rails' on-demand caching pattern transgresses this principle.

Or does it? I'm happy with a pragmatic trade-off, but what do the  
purists on the board think?


[1]: http://www.inventivelabs.com.au/weblog/post/apache-s-internal- 
dummy-connection


- J

-- 
Joseph Pearson  |  software inventor  |  inventivelabs.com.au  |   
8415 0866



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to