我已经尝试了各种各样的答案,包括 “如何防止浏览器在Rails中缓存页面”。
我在文件名末尾添加了一个随机数 -
<%= stylesheet_link_tag 'application.css?123456' %>
(which generates
<link href="/stylesheets/application.css?123456" media="screen" rel="stylesheet" type="text/css" />
我用过
<style type=\"text/css\">@import url('/stylesheets/application.css');</style>
我查看服务器上的文件,看起来不错。 我通过浏览器查看它(http://www.mysite.com/stylesheets/application.css) 我看到了旧文件!在IE8和Firefox 14上。
我使用capistrano进行部署:rake tmp:cache:clear在重启期间运行。 我在config / environments / production.rb中设置了 config.cache_classes = false 和 config.action_controller.perform_caching = false
(叹气...)
主机是Linux,Apache,Passenger,Rails。
现在,这非常令人沮丧。这已经很多很多小时了! 没有一个答案似乎有效。 我变得......绝望!
我希望我会被答案所夸大,可能很简单。 尽管如此,任何其他建议! 请!非常感谢您的协助。
PS&GT;喜欢这个网站。许多答案多年来一直被发现!
答案 0 :(得分:0)
使用资产(但它们仅在Rails 3中)。每次部署应用程序时,资产都将编译为css / js文件,已经缩小并具有唯一名称。Ruby On Rails Asset Pipeline
还有一个有用的提示。在应用服务器前设置代理服务器,如Nginx,并为静态文件设置“expire”,这样浏览器会在文件过期后重新获取文件。
答案 1 :(得分:0)
事实上,解决方案是我的服务提供商!
我使用capistrano进行部署。 它使用符号链接“current”指向当前版本文件夹 (发布/ 201210109993333 /,或者其他,日期时间值)。
我使用子域重定向,并使用“current / public”作为每个站点路径的一部分。 不知何故,我所有的“当前”价值都被他们的实际价值所取代! 即,在我的重定向中,它说“... / releases / 201210109993333 / public”。 哇。因此,任何静态资产都是从历史文件夹中提取的,而不是当前的文件夹。 替换发生在他们迁移到新机器时。看着替换的日期(发布文件夹),我确信发生了什么。他们同意了。
感谢大家的支持!
答案 2 :(得分:-3)
尝试更新您的导轨。只是一个建议。