自从升级到 Rails 4 以来,这个问题最近在我们对 Heroku 的最后几次推送中才出现。我的应用程序有两个 Web dyno。通过故障排除我发现,当有更新的编译资源可用时,一个 Web dyno 加载较旧的编译 CSS 文件时遇到问题。然后,另一个 Web dyno 将为当前所需的应用程序 CSS 提供服务。我应该声明,我们在推送到 Heroku 之前编译了我们的 Assets 。
我发现,为旧 Assets 提供服务的网络测功机始终为旧 Assets 提供服务。我尝试删除 web.2 然后重新创建它,但问题仍然存在。我什至创建了 8 个网络测功机,然后记录它们以查看它们是否为新 Assets 或旧 Assets 提供服务。在那次测试中,大约一半的测功机始终服务于旧 Assets ,一半服务于新 Assets 。
重新启动单个测功机似乎也没有帮助。
我们在 Ruby 2.1 上运行 Rails 4
最佳答案
一种选择是尝试更改 config/application.rb
文件中的 config.assets.version
属性。我遇到了这个问题,其中一些 Assets 已过时,并将该值从 1.0
更改为 1.1
为我解决了这个问题:
配置/application.rb
config.assets.version = '1.1'
关于heroku - Heroku 上的 Rails 4 : web dyno serving old assets, 而其他服务则为新服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22079212/