У меня есть действие rails, которое отвечает на запросы в различных форматах, включая запросы AJAX, например:
def index
# do stuff
respond_to do |format|
format.html do
# index.html.erb
end
format.js do
render :update do |page|
page.replace_html 'userlist', :partial => "userlist", :object=>@users
page.hide('spinner')
page.show('pageresults')
end
end
end
end
Я установил это действие для кэширования с использованием memcached, используя:
caches_action :index, :expires_in=>1.hour, :cache_path => Proc.new { |c| "index/#{c.params[:page]}/#{c.request.format}" }
Этот шаблон отлично работает для кэширования результата HTML, но не для результата JS. Часть JS всегда работает нормально, когда она не поступает из кеша. Однако при попадании в кеш страница не обновляется.
Что может быть причиной этого и как исправить?
Обновление: копаясь в этом больше, похоже, что запросы из кеша получают тип mime «текст/html» вместо «текст/javascript». Однако я не уверен, как это исправить - это причуда memcached? (Рельсы 2.3.2)