2015-04-15 40 views
0

我正在使用barryvdh的awesome laravel-httpcache包來緩存包含大量事件數據的頁面。這對客人來說非常合適,而且速度非常快。但是,登錄的用戶可以將此列表上的任何項目標記爲收藏夾。這些項目應該以某種方式突出顯示。由於頁面被緩存,因此沒有任何內容被突出顯示有沒有辦法繞過登錄用戶的httpcache?或者是否可以緩存每個用戶的頁面版本?Laravel:高速緩存和身份驗證用戶

回答

0

我從來沒有用過的包裝,但是從看documentation你應該能夠只是一個檢查添加到過濾器:

Route::filter('cache', function($route, $request, $response, $age=60){ 
    if(Auth::guest()){ 
     $response->setTtl($age); 
    } 
}); 
+0

良好的漁獲! :)將嘗試此... – gregory

+0

不幸的是,這不起作用...一旦頁面被緩存,緩存(=非個性化)版本被傳遞到登錄用戶。 – gregory

+0

好的,那就是緩存的工作原理。一旦瀏覽器獲得緩存特定請求的指令,除非時間結束或手動使緩存無效,否則它不會再次進行。一個簡單的解決方法是在登錄時使用不同的URL。只需添加GET參數就足夠了。這通常使用CSS文件等靜態資源來「告訴」瀏覽器內容已經改變('/css/style.css?v = 1.2') – lukasgeiter