首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby on Rails,如何禁用/关闭ETag

Ruby on Rails,如何禁用/关闭ETag
EN

Stack Overflow用户
提问于 2010-01-19 08:17:43
回答 6查看 6.3K关注 0票数 9

大家好,

如何在Ruby on Rails v2.3.5中关闭ETag

当我向RoR/Mongrel发出直接请求时,会出现一个ETag标头。

蒂娅

-daniel

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-04-19 19:31:07

简单得多:

代码语言:javascript
运行
复制
config.middleware.delete Rack::ETag
票数 25
EN

Stack Overflow用户

发布于 2010-05-06 15:03:25

response.etag = nil放在before_filter中不起作用。etag是在发送响应之前生成的(它是从正文中计算出来的,所以在所有呈现完成之后)。

禁用etag使用和生成(从而节省花费在md5上的时间)的正确解决方法是在这个猴子补丁中:

代码语言:javascript
运行
复制
module ActionController
  class Request
    # never match any incomming etag
    def etag_matches?(etag)
      false
    end
  end

  class Response
    # fake rails that our response already has an etag set and so none is generated automatically
    def etag?
      true
    end
  end
end
票数 4
EN

Stack Overflow用户

发布于 2010-01-19 17:20:31

ActionController::Response对象上有一个etag设置器方法,如果ETag HTTP头为空,它将删除它,因此您应该能够在控制器中清除它(可能是在之前的筛选器中):

代码语言:javascript
运行
复制
response.etag = nil
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2090178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档