1

我尝试了列出的各种答案,包括“如何防止浏览器在 Rails 中缓存页面”。

我在文件名的末尾添加了一个随机数 -

  <%= stylesheet_link_tag 'application.css?123456' %>
(which generates
  &lt;link href="/stylesheets/application.css?123456" media="screen" rel="stylesheet" type="text/css" />
  • 仍然没有运气!)

我用过

&lt;style type=\"text/css\">@import url('/stylesheets/application.css');&lt;/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> 喜欢这个网站。多年来已经找到了许多许多答案!

4

3 回答 3

0

解决办法其实就是用我的服务商!

我使用 capistrano 进行部署。它使用符号链接“current”指向当前的发布文件夹(releases/201210109993333/,或其他任何日期时间值)。

我使用子域重定向,并使用“当前/公共”作为每个站点路径的一部分。不知何故,我所有的“当前”值都被它们的实际值替换了!!!即,在我的重定向中,它说“.../releases/201210109993333/public”。哇。因此,任何静态资产都来自历史文件夹,而不是当前文件夹。当他们迁移到新机器时发生了替换。查看替换的日期(发布文件夹),我确信这就是发生的事情。他们同意了。

感谢大家的支持!

于 2012-10-13T14:42:37.537 回答
0

使用资产(但它们只存在于 Rails 3 中)。每次部署应用程序时,资产都将编译为 css/js 文件,已缩小并具有唯一名称。Ruby On Rails 资产管道

还有一个更有用的提示。在你的应用服务器前面设置像 Nginx 这样的代理服务器,并为静态文件设置“过期”,这样浏览器会在文件过期时重新获取文件。

于 2012-10-12T06:12:33.833 回答
-3

尝试更新您的导轨。只是一个建议。

于 2012-10-12T05:10:35.000 回答