2012-12-03 93 views
1

我在添加HTML5缓存到在rails上编写的单页应用程序后遇到了问题。浏览器(铬)不重新加载的HTML,这会导致两种方式的问题:HTML5高速缓存和授权问题

1)骨干的骨干HTML有时会改变 - 至少让骨干知道用户登录。但是,HTML不是加载,应用程序不知道(例如刷新后)。我可以在页面加载时查询服务器,但这是我跳跃避免的另一个请求。此外,这将迫使所有的permisions逻辑移动到客户端 - 所以要么从服务器复制cancan设置,要么将其嵌入到html中 - 我们遇到了上述问题。

2)Rails的csrf标记位于html中,它们也不会更改 - 导致任何ajax帖子无法使用。对于这一个我不知道该怎么做。从我读的csrf令牌生成的会话,所以也许在登录/注销我可以用js更新它。然而,在哪里得到它,它会工作吗?

+1

它引用清单总是包含在应用程序缓存页面运行它。您应该使用JavaScript加载* all *非静态数据,或者每次HTML更改时都需要更新清单文件。 – robertc

回答

0

我知道这个问题很老,但我碰到了CSRF问题。

尝试在清单文件中包含CSRF标记作为注释。所以无论什么时候改变它都会改变清单并强制重新加载。

CACHE MANIFEST 
# include CSRF token in manifest to force reload when it changes 
# <%= form_authenticity_token %> 

是安全的,你可以通过散列算法几次