Radiant currently caches only the page urls, without the params after 
the ?
Am I the only one who thinks this is bad?
For example my products page listing works by 
/products?offset=1200&limit=10
and I must turn off caching to make this work. Why not just let the 
cache
work on the full uri? People do flip on a catalog back and forth, so I 
did
benefit from changing this. If I had truly dynamic content, I'd turn off 
the caching.

This in an extension did the trick:

class SiteController < ApplicationController

  def show_page
    response.headers.delete('Cache-Control')
    uri = request.request_uri.to_s[1..-1]
    url = params[:url].to_s
    if live? and (@cache.response_cached?(uri))
      @cache.update_response(uri, response)
      @performed_render = true
    else
      show_uncached_page(url, uri)
    end
  end

  private

  def show_uncached_page(url, uri)
    @page = find_page(url)
    unless @page.nil?
    @page.request=request
    @page.process(request, response)
    @cache.cache_response(uri, response) if live? and @page.cache? #and 
not request.post?
    @performed_render = true
    else
      render :template => 'site/not_found', :status => 404
    end
  rescue Page::MissingRootPageError
    redirect_to welcome_url
  end

end

It also seems to be a good idea not to put post request's response into 
a cache.
A post supposed to change data, and the outcome of that should not be 
cached - I should not say OK if you just signed up as root...

What do you think what will this change break?

Laszlo

-- 
Posted via http://www.ruby-forum.com/.
_______________________________________________
Radiant mailing list
Post:   Radiant@lists.radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to