我有一个仅在生产包装盒上出现的问题。在DEV和TEST环境中正常工作。问题是提供的页面已缓存-无法反映我最近所做的更改。奇怪的是它不会一直发生。如果我清除了浏览器缓存,则在关闭浏览器然后打开并重新加载应用程序之前,它可能一直起作用。然后,它再次失败。有时,我可以在IE,Chrome和Firefox中加载页面。但是,如果我关闭Firefox并再次打开它-则旧页面可能会失败。 不确定是否重要,但是我要更改的文件是haml文件。 到目前为止,这是我尝试过的:
在生产包装盒上:
rm -rm tmp/cache/assets
rake assets:clobber
rake assets:precompile
rake assets:clean
rake tmp:cache:clear
rails tmp:clear
rails restart
“重新启动Rails”后,它似乎可以工作一段时间了。同样,在所有浏览器中都可以使用,直到我关闭Firefox几次...然后恢复为旧文件。在打开和关闭Chrome的情况下也可以正常工作-然后恢复为旧文件。 我在这里发现另一个问题,有人设置了不缓存。 在application_controller.rb
before_filter :set_cache_buster
def set_cache_buster
response.headers["Cache-Control"] = "no-cache, no-store"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end
在config / environments / production.rb中:
config.cache_classes = false
config.cache_store = false
config.action_controller.perform_caching = false
如果我尝试从控制台运行“ Rails.cache.clear”,则会得到:
NoMethodError: undefined method 'clear' for false:FalseClass
这是一个非常奇怪的问题。有人想到我可以尝试的其他东西吗?