instiki/lib/caching_stuff.rb
Jacques Distler ad049bcc4b Drop hostname from cache key
By default, Rails will cache

    example.com/mywiki/show/SomePage
and
    www.example.com/mywiki/show/SomePage

In Instiki, this just leads to stale cached pages and frustration.
Fix that behaviour.
2008-12-18 09:21:26 -06:00

21 lines
747 B
Ruby

# based on http://pastie.org/49840
# override the fragment_cache_key method in actionpack/lib/action_controller/caching/fragments.rb
# to remove hostname in fragment caching
# so instead of caching different fragments for "example.com/posts/list" and
# "www.example.com/posts/list", instead it will just use "posts/list"
module CachingStuff
module ActionController
module Caching
module Fragments
def fragment_cache_key(key)
ActiveSupport::Cache.expand_cache_key(key.is_a?(Hash) ? url_for(key.merge(:host=>"")).split(":///").last : key.split('/')[1..-1].join('/'), :views)
end
end
end
end
end
ActionController::Base.class_eval do
include CachingStuff::ActionController::Caching::Fragments
end