如何解决“304未修改”警告? (jQuery UI,Ruby on Rails)

Posted

技术标签:

【中文标题】如何解决“304未修改”警告? (jQuery UI,Ruby on Rails)【英文标题】:How to Solve the "304 Not Modified" Warning? (jQuery UI, Ruby on Rails) 【发布时间】:2012-11-29 16:31:04 【问题描述】:

注意:问题已被编辑。

问题:

jQuery UI 1.9 添加到Ruby on Rails 3.2 导致网页加载时间变慢

警告信息:

Started GET "/assets/jquery-ui-1.9.2.custom/development-bundle/ui/minified/i18n/
jquery.ui.datepicker-tj.min.js?body=1" for *[localhost]*
Served asset /jquery-ui-1.9.2.custom/development-bundle/ui/minified/i18n/jquery.
ui.datepicker-tj.min.js - 304 Not Modified (15ms)

此协议消息确实会重复出现。如何解决这个304 Not Modified 警告?

【问题讨论】:

【参考方案1】:

这是 Webrick 的问题。如果你改用thin,问题就会停止(另外,thin 通常更快)

https://rubygems.org/gems/thin

如果您完全准备使用 Webrick,可以尝试使用 this patch

以后发帖时请只问一个问题。如果出现另一个错误,请将其附加到当前问题(如果它是相关的)(通常这是调试信息之类的东西)。否则,为它打开一个新问题。

对于 304,它并不是真正的警告,而只是信息。如果事情表现不正常,这可能是一个警告,但通常没关系。在这种情况下,304 告诉您的是内容被缓存并且没有被对服务器的请求修改。这样做是出于性能原因。如果你想让 304 消失,你可以尝试关闭 rails 中的缓存。但是,通常情况下,rails 足够聪明,可以在您修改它时破坏缓存并将新资产发送给您。

这是reference for status codes

有关缓存的参考,您可能希望从 Rails Guide on Caching 开始

【讨论】:

谢谢,补丁的line 205已经导致one警告得到解决。我已经编辑了问题。 感谢您提供更多信息。它确实可以在 Internet Explorer 中运行,而无需调用重复请求,但相反,Firefox 确实会调用重复请求(即使在清除缓存和 cookie 之后)。问题是 Firefox 是通过哪个因素导致重复请求的调用。 我不确定这个问题的根源是什么,但我认为您将本地缓存与服务器缓存混淆了。 304 Not Modified 表示 rails 缓存了文件并告诉您的客户端使用最新版本。如果您清除本地缓存,服务器仍会缓存以前呈现的 html。这就是304所说的。请注意,这不是错误。这只是信息

以上是关于如何解决“304未修改”警告? (jQuery UI,Ruby on Rails)的主要内容,如果未能解决你的问题,请参考以下文章

Amazon CloudFront 未针对未更改的静态内容始终返回 304(未修改)?

为啥在使用 HttpWebRequest 时某些链接上出现“(304)未修改”错误?

Chrome etag 总是显示 200 ok 但 curl 得到 304 未修改

python urllib2.request.add_header 未返回 HTTP 错误 304(未修改)异常

304未修改意味着在控制台状态中意味着什么?

节点快递:如何找出给定etag的状态是不是为304