- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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 类型“text/html”而不是“text/javascript”。但是我不确定如何解决这个问题——这是 memcached 的一个怪癖吗? ( rails 2.3.2)
最佳答案
类似于 voldy 的回答,但使用的是未弃用的方法。
caches_action :show,
:cache_path => :post_cache_path.to_proc,
:expires_in => 1.hour
protected
def post_cache_path
if request.xhr?
"#{request.url}.js"
else
"#{request.url}.html"
end
end
关于ruby-on-rails - 如何将 caches_action 配置为适用于多种格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1483847/
我有一个 rails 操作,它响应各种格式的请求,包括 AJAX 请求,例如: def index # do stuff respond_to do |format|
我想使缓存的操作过期并想知道如何生成正确的引用。 #controller caches_action :index, :layout => false #generates this fragme
我有一个 Controller ,我在其中缓存了 show Action 。 show 操作有许多用于安全性的前置过滤器,如果用户未登录,而不是当前组的成员等,它们将执行和重定向。当我没有打开缓存时,
我正在尝试升级到 Rails 4 beta 1,但遇到了一些问题。 简而言之,这就是我的应用程序 Controller 的样子。 class ApplicationController ': unde
我正在使用以下缓存索引操作: caches_action :index, :cache_path => Proc.new { |c| c.params } expire_action :action
我正在开发一项搜索功能,当输入内容时,会调用 ajax 来获取结果。我想在 memory_cache 中缓存带有搜索关键字的搜索操作,所以我这样做: # caches_action with GET
当您使用 caches_action :layout => false在 Rails 3 中,在缓存 View 中填充并在布局中使用的任何 content_for 块最终都为空。有什么解决方法吗? 例
我被困在我认为是 Rails 网络应用程序中非常简单/常见的用例上。我想使用“caches_action, layout:false”并从布局中显示将由操作设置的动态标签(来自 View 或 Cont
我是一名优秀的程序员,十分优秀!