我已经尝试了列出的各种答案,包括"如何防止浏览器在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_cacheching=错误
(叹气…)
主机是Linux、Apache、Passenger、Rails。
现在,这非常令人沮丧。已经很多很多小时了!这些答案似乎都不起作用。我变成了。。。绝望!
我想我会被这个答案弄得目瞪口呆,可能很简单。尽管如此,还有其他建议吗!求你了!非常感谢您的协助。
PS>喜欢这个网站。这些年来,我们找到了许多答案!
使用资产(但它们仅在Rails3中)。每次部署应用程序时,资产都会编译在css/js文件中,这些文件已经缩小并具有唯一的名称。Ruby On Rails资产管道
还有一个有用的提示。在你的应用服务器前面安装像Nginx这样的代理服务器,并为静态文件设置"过期",这样浏览器就会在文件过期时重新蚀刻文件。
解决方案实际上是由我的服务提供商提供的!
我使用capistrano进行部署。它使用符号链接"current"指向当前发布文件夹(releases/201210109993333/,或其他日期时间值)。
我使用子域重定向,并使用"current/public"作为每个站点路径的一部分。不知怎的,我所有的"当前"值都被它们的实际值所取代!!!!也就是说,在我的重定向中,它说"…/releases/201210109993333/public"。哇。因此,任何静态资产都是从历史文件夹中提供的,而不是当前文件夹。当他们迁移到一台新机器时,发生了替换。看看替换的日期(发布文件夹),我确信这就是发生的事情。他们同意了。
感谢大家的支持!
尝试更新您的rails。只是一个建议。