2012-03-11 72 views

回答

3

您有兩門主要課程:放棄使用清漆來緩存頁面,或放棄在頁面上使用登錄表單。 CSRF令牌(您不想丟失)將阻止您成功緩存清漆頁面;即使你考慮到它,你也會得到每一個訪問過的人的頁面副本,這就違背了使用清漆的目的。

兩者之間的一個解決方案是在沒有登錄表單的情況下緩存頁面,然後使用Javascript插入登錄表單。主頁面將被緩存,並且您應該能夠使登錄表單(通過AJAX拉出)的速度足夠快,以避免造成問題。另一種可能的解決方案是將登錄表單放入IFRAME中,儘管這會使問題更加複雜化,因爲您必須在登錄時在主頁面中使用Javascript來處理登錄響應中的事情(其中包括IFRAME) )適當地重新加載它。

+0

感謝您的迴應!我正在考慮使用esi來解決這個問題,但我想我可能會先嚐試js解決方案。我的登錄表單實際上是在一個燈箱iframe中,它已經是我在js模板中的一些表單,這些表單似乎正在導致crsf標記被設置,因此使這些外部應該是一個快速的嘗試。再次感謝,我稍後會發帖分享我的工作方式。 – 2012-03-12 07:27:50

+0

更新:問題是兩倍。一個crsf令牌正在設置購買一個外部應用程序,我正在使用哪個阻止緩存清漆。一旦我分離出來,我發現清漆仍然沒有緩存。在#varnish irc頻道中,我被告知當你使用授權標題時,varnish會跳過檢查,並且默認情況下永遠不會緩存。 – 2012-03-12 12:05:53