1

在将 HTML5 缓存添加到在 Rails 上以主干编写的单页应用程序后,我遇到了问题。浏览器(chrome)没有重新加载 html,这会以两种方式导致问题:

1) 主干的骨架 html 有时会发生变化 - 至少让主干知道用户已登录。但是,由于没有加载 html,应用程序不知道这一点(例如刷新后)。我可以在页面加载时查询服务器,但这是我希望避免的另一个请求。此外,这将强制将所有权限逻辑移动到客户端 - 因此要么从服务器复制 cancan 设置,要么将其嵌入到 html 中 - 我们遇到了上述问题。

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

4

1 回答 1

0

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

尝试在清单文件中包含 CSRF 令牌作为注释。因此,每当它更改时,它都会更改清单并强制重新加载。

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

为了安全起见,您可以通过哈希算法运行它几次

于 2013-09-06T15:56:14.610 回答