2012-12-03 88 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 %> 

是安全的,你可以通過散列算法幾次