我正在页面缓存我的大多数页面并使用动态js文件来注入用户特定的内容。
所以在我的头文件中我有这样的东西:
<%= javascript_include_tag '/dynamic_header/current' %>
这样做是执行dynamic_header控制器show.js.erb视图,该视图将与页面一起返回并处理动态内容的注入。
一切顺利,直到我在野生动物园测试。 (Firefox工作正常)
似乎safari缓存了这个文件,并且在更改时没有注意到,这是每次有新的Flash消息或用户登录或注销时。
我的控制器中有一种简单的方法可以将expires头添加到此文件中吗?或者人们对如何使safari通知缓存文件已经改变有任何其他建议。
感谢。
答案 0 :(得分:2)
通常,静态文件的修改日期会附加到它们的末尾以修复缓存问题。由于您的文件是动态的,因此您应该将当前时间添加到路径的末尾。
javascript_include_tag不支持此功能,因此您需要手动编写脚本include标记,如下所示:
<script type="text/javascript" src="/dynamic_header/current?t=<%=Time.now.to_i%>"></script>
祝你好运!
答案 1 :(得分:0)