Ruby on rails 资产的内容(图像、js和css)根据不同的请求随机切换

Ruby on rails 资产的内容(图像、js和css)根据不同的请求随机切换,ruby-on-rails,heroku,Ruby On Rails,Heroku,我的应用程序——cloudlist(cloudli.st)——使用了Heroku、rails 3.2和一堆宝石。在过去的几天里,我们已经开始看到我们的布局在部署几小时后出现中断 奇怪的是,文件的内容会根据不同的请求随机切换。我们使用rails资产管道的所有默认值,没有任何更改。部署完成后,一切正常。一段时间后(通常是几个小时),某些区域的布局开始中断。有时一个图像有不同的内容,有时甚至JS或CSS文件也有不同的内容。我们还看到了完全混淆的文件。这一切都很奇怪,我在网上找不到任何东西 要说明此问题

我的应用程序——cloudlist(cloudli.st)——使用了Heroku、rails 3.2和一堆宝石。在过去的几天里,我们已经开始看到我们的布局在部署几小时后出现中断

奇怪的是,文件的内容会根据不同的请求随机切换。我们使用rails资产管道的所有默认值,没有任何更改。部署完成后,一切正常。一段时间后(通常是几个小时),某些区域的布局开始中断。有时一个图像有不同的内容,有时甚至JS或CSS文件也有不同的内容。我们还看到了完全混淆的文件。这一切都很奇怪,我在网上找不到任何东西

要说明此问题,请参见下图,其中的精灵内容错误

另请参见frame.png文件的内容。它应该显示瓷砖的框架,但有时也会显示奖项提名徽章

有人见过类似的情况吗,或者你知道如何解决这个问题吗?


如果这种情况持续下去,我们需要从Heroku迁移到其他基础设施。

根据Heroku的建议(https://devcenter.heroku.com/articles/rack-cache-memcached-rails31)以下是结果

简言之:这没用

长版本:

我不使用memcached进行缓存。我既不使用片段缓存也不使用动作缓存。至少我在我的应用程序中根本不使用缓存

缓存的唯一内容是由配置参数完成的

config.action\u controller.perform\u caching=false

在生产环境中

我通读了这篇文章,检查了每个参数。我唯一不同的是config.service\u static\u assets,它是false。我将此设置为true,重新部署(启用缓存),并在几个小时后遇到相同的问题


我不知道出了什么问题,但由于我的文件中存在与预期不匹配的内容,我必须得出结论,这是您的基础架构中的一些内容。例如,我请求应用程序-(任何摘要).css,我得到精灵-(任何摘要).png应用程序-(任何摘要).js

试图调试这个问题是相当困难的。实际上,它只是在玩弄参数/配置,部署并等待站点停止。到目前为止,我所做的是停用资产摘要并尝试预编译资产。首先,预编译似乎是解决问题的方法,但今天早上该站点再次被破坏。在我的生产设置中关闭rails缓存(config.action\u controller.perform\u caching=false)会使该站点再次工作。所以我得出结论,这是一个缓存问题,heroku的工作人员必须对此进行调查。你有没有向heroku寻求缓存方面的帮助?如果这是正确的答案,你应该回答你自己的问题:)很高兴你找到了答案!我向heroku寻求帮助,但我得到的是faq的链接。也许这解决了99%与缓存相关的问题,但对我没有帮助。